//==== Write Fuse Cross Section File ====// void FuselageXSec::write(xmlNodePtr root) { xmlAddIntNode( root, "Num_Pnts", num_pnts); xmlAddDoubleNode( root, "Spine_Location", location() ); xmlAddDoubleNode( root, "Y_Offset", y_offset()); xmlAddDoubleNode( root, "Z_Offset", z_offset()); //==== Profile Stuff ====// xmlAddDoubleNode( root, "Top_Tan_Ang", topTanAng()); xmlAddDoubleNode( root, "Top_Tan_Str_1", topTanStr1()); xmlAddDoubleNode( root, "Top_Tan_Str_2", topTanStr2()); xmlAddDoubleNode( root, "Bot_Tan_Ang", botTanAng()); xmlAddDoubleNode( root, "Bot_Tan_Str_1", botTanStr1()); xmlAddDoubleNode( root, "Bot_Tan_Str_2", botTanStr2()); xmlAddDoubleNode( root, "Left_Tan_Ang", leftTanAng()); xmlAddDoubleNode( root, "Left_Tan_Str_1", leftTanStr1()); xmlAddDoubleNode( root, "Left_Tan_Str_2", leftTanStr2()); xmlAddDoubleNode( root, "Right_Tan_Ang", rightTanAng()); xmlAddDoubleNode( root, "Right_Tan_Str_1", rightTanStr1()); xmlAddDoubleNode( root, "Right_Tan_Str_2", rightTanStr2()); xmlAddIntNode( root, "Num_Sect_Interp_1", numSectInterp1); xmlAddIntNode( root, "Num_Sect_Interp_2", numSectInterp2); xmlAddIntNode( root, "Top_Sym_Flag", topSymFlag); xmlAddIntNode( root, "Side_Sym_Flag", sideSymFlag); write_parms( root ); }
//==== Write External File ====// void PropGeom::write(xmlNodePtr root) { xmlAddStringNode( root, "Type", "Prop"); //==== Write General Parms ====// xmlNodePtr gen_node = xmlNewChild( root, NULL, (const xmlChar *)"General_Parms", NULL ); write_general_parms( gen_node ); //==== Write Fuse Parms ====// xmlNodePtr prop_node = xmlNewChild( root, NULL, (const xmlChar *)"Prop_Parms", NULL ); xmlAddIntNode( prop_node, "NumBlades", numBlades ); xmlAddIntNode( prop_node, "SmoothFlag", smoothFlag ); xmlAddIntNode( prop_node, "NumU", numU ); xmlAddIntNode( prop_node, "NumW", numW ); xmlAddDoubleNode( prop_node, "Diameter", diameter() ); xmlAddDoubleNode( prop_node, "ConeAngle", cone_angle() ); xmlAddDoubleNode( prop_node, "Pitch", pitch() ); for ( int i = 0 ; i < (int)sectVec.size() ; i++ ) { xmlNodePtr sect_node = xmlNewChild( prop_node, NULL, (const xmlChar *)"Sect_Parms", NULL ); xmlAddDoubleNode( sect_node, "X_Off", sectVec[i].x_off() ); xmlAddDoubleNode( sect_node, "Y_Off", sectVec[i].y_off() ); xmlAddDoubleNode( sect_node, "Chord", sectVec[i].chord() ); xmlAddDoubleNode( sect_node, "Twist", sectVec[i].twist() ); xmlNodePtr af_node = xmlNewChild( sect_node, NULL, (const xmlChar *)"Airfoil", NULL ); sectVec[i].foil->write( af_node ); } }
void RulerLabel::writeRulerLabel(Aircraft * airPtr, xmlNodePtr root) { xmlNodePtr ruler_node = xmlNewChild( root, NULL, (const xmlChar *)"Ruler_Parms", NULL ); vertex2.write(airPtr, ruler_node, "Vertex2_Parms"); xmlAddDoubleNode(ruler_node, "RulerOffset", rulerOffset); xmlAddIntNode(ruler_node, "AttachState", attachState); xmlAddIntNode(ruler_node, "XLock", xLock); xmlAddIntNode(ruler_node, "YLock", yLock); xmlAddIntNode(ruler_node, "ZLock", zLock); xmlAddDoubleNode(ruler_node, "RulerDistance", rulerDistance); xmlAddIntNode(ruler_node, "Precision", precision); xmlAddStringNode(ruler_node, "UnitString", unitString.get_char_star()); }
void VirtGlWindow::writeFile(xmlNodePtr node) { xmlAddDoubleNode( node, "Back_Img_Scale_W", backImgScaleW ); xmlAddDoubleNode( node, "Back_Img_Scale_H", backImgScaleH ); xmlAddDoubleNode( node, "Back_Img_Offset_X", backImgOffsetX ); xmlAddDoubleNode( node, "Back_Img_Offset_Y", backImgOffsetY ); //==== Load Components Into XML Tree ====// xmlNodePtr user_view_list_node = xmlNewChild( node, NULL, (const xmlChar *)"User_View_List", NULL ); for ( int i = 0 ; i < NUM_USER_VIEWS ; i++ ) { xmlNodePtr user_view_node = xmlNewChild( user_view_list_node, NULL, (const xmlChar *)"User_View", NULL ); xmlAddIntNode( user_view_node, "Saved_User_View_Flag", savedUserViewFlag[i] ); if ( savedUserViewFlag[i] ) { xmlAddDoubleNode( user_view_node, "Saved_Rot_Center_X", savedRotationCenters[i].x() ); xmlAddDoubleNode( user_view_node, "Saved_Rot_Center_Y", savedRotationCenters[i].y() ); xmlAddDoubleNode( user_view_node, "Saved_Rot_Center_Z", savedRotationCenters[i].z() ); xmlAddDoubleNode( user_view_node, "Track_Scale", savedTrackVec[i].get_scale() ); xmlAddDoubleNode( user_view_node, "Track_Trans_X", savedTrackVec[i].get_trans_x() ); xmlAddDoubleNode( user_view_node, "Track_Trans_Y", savedTrackVec[i].get_trans_y() ); xmlAddDoubleNode( user_view_node, "Track_Spin_Rot_X", savedTrackVec[i].get_rvec_x() ); xmlAddDoubleNode( user_view_node, "Track_Spin_Rot_Y", savedTrackVec[i].get_rvec_y() ); xmlAddDoubleNode( user_view_node, "Track_Spin_Rot_Z", savedTrackVec[i].get_rvec_z() ); xmlAddDoubleNode( user_view_node, "Track_Spin_Rot_W", savedTrackVec[i].get_rvec_w() ); } } }
void TextLabel::writeTextLabel(Aircraft * airPtr, xmlNodePtr root) { xmlNodePtr text_node = xmlNewChild( root, NULL, (const xmlChar *)"Text_Parms", NULL ); vertex1.write(airPtr, text_node, "Vertex1_Parms"); xmlAddDoubleNode(text_node, "TextOffset", textOffset); xmlAddIntNode( text_node, "FixedLabelFlag", fixedLabelFlag ); xmlAddDoubleNode( text_node, "FixedPosX", fixedPos[0] ); xmlAddDoubleNode( text_node, "FixedPosY", fixedPos[1] ); }
void ParmLinkMgr::WriteLinks( xmlNodePtr root ) { xmlNodePtr link_list_node = xmlNewChild( root, NULL, (const xmlChar *)"ParmLink_List", NULL ); for ( int i = 0 ; i < (int)m_ParmLinkVec.size() ; i++ ) { ParmLink* pl = m_ParmLinkVec[i]; xmlNodePtr link_node = xmlNewChild( link_list_node, NULL, (const xmlChar *)"Link", NULL ); xmlAddIntNode( link_node, "GeomA", ((Geom*)pl->GetParmA()->get_geom_base())->getPtrID() ); xmlAddStringNode( link_node, "GroupA", pl->GetParmA()->get_group_name().get_char_star() ); xmlAddStringNode( link_node, "ParmA", pl->GetParmA()->get_name().get_char_star() ); xmlAddIntNode( link_node, "GeomB", ((Geom*)pl->GetParmB()->get_geom_base())->getPtrID() ); xmlAddStringNode( link_node, "GroupB", pl->GetParmB()->get_group_name().get_char_star() ); xmlAddStringNode( link_node, "ParmB", pl->GetParmB()->get_name().get_char_star() ); xmlAddIntNode( link_node, "OffsetFlag", pl->GetOffsetFlag() ); xmlAddDoubleNode( link_node, "Offset", pl->GetOffset() ); xmlAddIntNode( link_node, "ScaleFlag", pl->GetScaleFlag() ); xmlAddDoubleNode( link_node, "Scale", pl->GetScale() ); xmlAddIntNode( link_node, "LowerLimitFlag", pl->GetLowerLimitFlag() ); xmlAddDoubleNode( link_node, "LowerLimit", pl->GetLowerLimit() ); xmlAddIntNode( link_node, "UpperLimitFlag", pl->GetUpperLimitFlag() ); xmlAddDoubleNode( link_node, "UpperLimit", pl->GetUpperLimit() ); } }
void LabelGeom::writeLabelGeom(xmlNodePtr root) { xmlNodePtr label_node = xmlNewChild( root, NULL, (const xmlChar *)"Label_Parms", NULL ); // xmlAddIntNode( label_node, "TypeInt", type ); // xmlAddStringNode( label_node, "TypeStr", type_str.get_char_star()); xmlAddStringNode( label_node, "NameStr", name_str.get_char_star()); xmlAddDoubleNode( label_node, "ColorR", color.x() ); xmlAddDoubleNode( label_node, "ColorG", color.y() ); xmlAddDoubleNode( label_node, "ColorB", color.z() ); xmlAddIntNode( label_node, "DrawMode", drawMode ); xmlAddDoubleNode( label_node, "TextSize", textSize ); xmlAddDoubleNode( label_node, "ViewScale", viewScale ); }
//==== Write Fuse Cross Section File ====// void FuselageXSec::write_parms(xmlNodePtr root ) { xmlAddIntNode( root, "Type", xstype); xmlAddDoubleNode( root, "Height", height() ); xmlAddDoubleNode( root, "Width", width() ); xmlAddDoubleNode( root, "Max_Width_Location", max_width_loc() ); xmlAddDoubleNode( root, "Corner_Radius", corner_rad() ); xmlAddDoubleNode( root, "Top_Tan_Angle", top_tan_angle() ); xmlAddDoubleNode( root, "Bot_Tan_Angle", bot_tan_angle() ); xmlAddDoubleNode( root, "Top_Tan_Strength", top_str() ); xmlAddDoubleNode( root, "Upper_Tan_Strength", upp_str() ); xmlAddDoubleNode( root, "Lower_Tan_Strength", low_str() ); xmlAddDoubleNode( root, "Bottom_Tan_Strength", bot_str() ); if ( xstype == FXS_FROM_FILE ) { vec3d pnt; Stringc ystr, zstr; char numstr[255]; int num_pnts = file_crv.get_num_pnts(); xmlAddStringNode( root, "File_Name", fileName ); for ( int i = 0 ; i < file_crv.get_num_pnts() ; i++ ) { pnt = file_crv.get_pnt( i ); sprintf( numstr, "%lf,", pnt.y() ); ystr.concatenate(numstr); sprintf( numstr, "%lf,", pnt.z() ); zstr.concatenate(numstr); } ystr.concatenate("\0"); zstr.concatenate("\0"); xmlAddStringNode( root, "File_Y_Pnts", ystr ); xmlAddStringNode( root, "File_Z_Pnts", zstr ); } else if ( xstype == FXS_EDIT_CRV ) { edit_crv.write( root ); } }
void Af::write(xmlNodePtr node) { int i; xmlAddIntNode( node, "Type", type); xmlAddIntNode( node, "Inverted_Flag", inverted_flag); xmlAddDoubleNode( node, "Camber", camber() ); xmlAddDoubleNode( node, "Camber_Loc", camber_loc() ); xmlAddDoubleNode( node, "Thickness", thickness() ); xmlAddDoubleNode( node, "Thickness_Loc", thickness_loc() ); xmlAddDoubleNode( node, "Radius_Le", radius_le() ); xmlAddDoubleNode( node, "Radius_Te", radius_te() ); xmlAddIntNode( node, "Six_Series", sixser ); xmlAddDoubleNode( node, "Ideal_Cl", ideal_cl() ); xmlAddDoubleNode( node, "A", a() ); if ( type == AIRFOIL_FILE ) { xmlAddStringNode( node, "Name", name() ); xmlAddDoubleNode( node, "Original_AF_Thickness", orig_af_thickness ); xmlAddDoubleNode( node, "Radius_LE_Correction_Factor", radius_le_correction_factor ); xmlAddDoubleNode( node, "Radius_TE_Correction_Factor", radius_te_correction_factor ); vec3d pnt; Stringc upstr; char numstr[255]; for ( i = 0 ; i < upper_curve.get_num_pnts() ; i++) { pnt = upper_curve.get_pnt(i); sprintf( numstr, "%lf, %lf,", pnt.x(), pnt.z() ); upstr.concatenate(numstr); } upstr.concatenate("\0"); xmlAddStringNode( node, "Upper_Pnts", upstr ); Stringc lowstr; for ( i = 0 ; i < lower_curve.get_num_pnts() ; i++) { pnt = lower_curve.get_pnt(i); sprintf( numstr, "%lf, %lf,", pnt.x(), pnt.z() ); lowstr.concatenate(numstr); } lowstr.concatenate("\0"); xmlAddStringNode( node, "Lower_Pnts", lowstr ); } xmlAddIntNode( node, "Slat_Flag", slat_flag ); xmlAddIntNode( node, "Slat_Shear_Flag", slat_shear_flag ); xmlAddDoubleNode( node, "Slat_Chord", slat_chord() ); xmlAddDoubleNode( node, "Slat_Angle", slat_angle() ); xmlAddIntNode( node, "Flap_Flag", flap_flag ); xmlAddIntNode( node, "Flap_Shear_Flag", flap_shear_flag ); xmlAddDoubleNode( node, "Flap_Chord", flap_chord() ); xmlAddDoubleNode( node, "Flap_Angle", flap_angle() ); }