OpenVSP API Documentation 3.43.0
 
Loading...
Searching...
No Matches
VSP_Geom_API.h
1//
2// This file is released under the terms of the NASA Open Source Agreement (NOSA)
3
4// version 1.3 as detailed in the LICENSE file which accompanies this software.
5//
6
7// API.h: interface for the Vehicle Class and Vehicle Mgr Singleton.
8// J.R Gloudemans
9//
11
198
199#if !defined(VSPAPI__INCLUDED_)
200#define VSPAPI__INCLUDED_
201
202#ifdef SWIG
203%feature("autodoc", 1);
204%feature("doxygen:ignore:forcpponly", range="end");
205%feature("doxygen:ignore:beginPythonOnly", range="end:endPythonOnly", contents="parse");
206
207#endif
208
209#include "Defines.h"
210
211#include "APIErrorMgr.h"
212#include "APIUpdateCountMgr.h"
213#include "Vec3d.h"
214#include "Matrix4d.h"
215
216#include <string>
217#include <stack>
218#include <vector>
219
220
221using std::string;
222using std::stack;
223using std::vector;
224
225namespace vsp
226{
227
228//======================== API Functions ================================//
255
256extern void VSPCheckSetup();
257
289
290extern void VSPRenew();
291
292
333
334extern void Update( bool update_managers = true );
335
343
344extern void VSPExit( int error_code );
345
353
354extern void VSPCrash( int crash_type );
355
367
369
370
393
394extern std::string GetVSPVersion();
395
426
428
459
461
492
494
519
520extern std::string GetVSPExePath();
521
522
552
553extern bool SetVSPAEROPath( const std::string & path );
554
580
581extern std::string GetVSPAEROPath();
582
613
614extern bool CheckForVSPAERO( const std::string & path );
615
645
646extern bool SetVSPHelpPath( const std::string & path );
647
672
673extern std::string GetVSPHelpPath();
674
703
704extern bool CheckForVSPHelp( const std::string & path );
705
706extern void RegisterCFDMeshAnalyses();
707
708
709//======================== File I/O ================================//
768
769extern void ReadVSPFile( const std::string & file_name );
770
830
831extern void WriteVSPFile( const std::string & file_name, int set = SET_ALL );
832
891
892extern void SetVSP3FileName( const std::string & file_name );
893
938
939extern std::string GetVSPFileName();
940
966
967extern void ClearVSPModel();
968
978
979extern void InsertVSPFile( const std::string & file_name, const std::string & parent_geom_id );
980
981
1019
1020extern std::string ExportFile( const std::string & file_name, int thick_set, int file_type, int subsFlag = 1, int thin_set = vsp::SET_NONE, bool useMode = false, const string &modeID = "" );
1021
1033
1034extern std::string ImportFile( const std::string & file_name, int file_type, const std::string & parent );
1035
1036
1066
1067extern void SetBEMPropID( const string & prop_id );
1068
1069
1070//======================== Design Files ================================//
1071
1079
1080extern void ReadApplyDESFile( const std::string & file_name );
1081
1089
1090extern void WriteDESFile( const std::string & file_name );
1091
1099
1100extern void ReadApplyXDDMFile( const std::string & file_name );
1101
1109
1110extern void WriteXDDMFile( const std::string & file_name );
1111
1119
1120extern int GetNumDesignVars();
1121
1131
1132extern void AddDesignVar( const std::string & parm_id, int type );
1133
1140
1142
1151
1152extern std::string GetDesignVar( int index );
1153
1163
1164extern int GetDesignVarType( int index );
1165
1166
1167//======================== Computations ================================//
1196
1197extern void SetComputationFileName( int file_type, const std::string & file_name );
1198
1239
1240extern std::string ComputeMassProps( int set, int num_slices, int idir );
1241
1280
1281extern std::string ComputeCompGeom( int set, bool half_mesh, int file_export_types );
1282
1329
1330extern std::string ComputePlaneSlice( int set, int num_slices, const vec3d & norm, bool auto_bnd,
1331
1332 double start_bnd = 0, double end_bnd = 0, bool measureduct = false );
1361
1362extern void ComputeDegenGeom( int set, int file_export_types );
1363
1395
1396extern void ComputeCFDMesh( int set, int degenset, int file_export_types );
1397
1418
1419extern void SetCFDMeshVal( int type, double val );
1420
1454
1455extern void SetCFDWakeFlag( const std::string & geom_id, bool flag );
1456
1484
1486
1510
1511extern void AddDefaultSources();
1512
1548
1549extern void AddCFDSource( int type, const std::string & geom_id, int surf_index,
1550
1551 double l1, double r1, double u1, double w1,
1552 double l2 = 0, double r2 = 0, double u2 = 0, double w2 = 0 );
1553
1561
1562extern string GetVSPAERORefWingID();
1563
1620
1621extern string SetVSPAERORefWingID( const std::string & geom_id );
1622
1623
1624//======================== Analysis ================================//
1625
1648
1649extern int GetNumAnalysis();
1650
1682
1683extern std::vector<std::string> ListAnalysis();
1684
1721
1722extern std::vector<std::string> GetAnalysisInputNames( const std::string & analysis );
1723
1747
1748extern std::string GetAnalysisDoc( const std::string & analysis );
1749
1765
1766extern std::string GetAnalysisInputDoc( const std::string & analysis, const std::string & name );
1767
1791
1792extern std::string ExecAnalysis( const std::string & analysis );
1793
1794
1804
1805extern int GetNumAnalysisInputData( const std::string & analysis, const std::string & name );
1806
1841
1842extern int GetAnalysisInputType( const std::string & analysis, const std::string & name );
1843
1882
1883extern const std::vector< int > & GetIntAnalysisInput( const std::string & analysis, const std::string & name, int index = 0 );
1884
1915
1916extern const std::vector< double > & GetDoubleAnalysisInput( const std::string & analysis, const std::string & name, int index = 0 );
1917
1948
1949extern const std::vector<std::string> & GetStringAnalysisInput( const std::string & analysis, const std::string & name, int index = 0 );
1950
1983
1984extern const std::vector< vec3d > & GetVec3dAnalysisInput( const std::string & analysis, const std::string & name, int index = 0 );
1985
1986
2013
2014extern void SetAnalysisInputDefaults( const std::string & analysis );
2015
2054
2055extern void SetIntAnalysisInput( const std::string & analysis, const std::string & name, const std::vector< int > & indata, int index = 0 );
2056
2097
2098extern void SetDoubleAnalysisInput( const std::string & analysis, const std::string & name, const std::vector< double > & indata, int index = 0 );
2099
2130
2131extern void SetStringAnalysisInput( const std::string & analysis, const std::string & name, const std::vector<std::string> & indata, int index = 0 );
2132
2165
2166extern void SetVec3dAnalysisInput( const std::string & analysis, const std::string & name, const std::vector< vec3d > & indata, int index = 0 );
2167
2168
2195
2196extern void PrintAnalysisInputs( const std::string & analysis_name );
2197
2224
2225extern void PrintAnalysisDocs( const std::string & analysis_name );
2226
2227//======================== Attributes ================================//
2228
2252
2253extern string SummarizeAttributes();
2254
2277
2279
2307
2308extern vector < string > FindAllAttributes();
2309
2310
2311
2340
2341extern vector < string > FindAttributesByName( const string & search_str );
2342
2367
2368extern string FindAttributeByName( const string & search_str, int index );
2369
2398
2399extern string FindAttributeInCollection( const string & obj_id, const string & search_str, int index );
2400
2433
2434extern vector< string > FindAttributeNamesInCollection(const string & collID );
2435
2468
2469extern vector< string > FindAttributesInCollection(const string & collID );
2470
2499
2500extern vector< string > FindAttributedObjects();
2501
2532
2533extern int GetObjectType(const string & attachID);
2534
2564
2565extern string GetObjectTypeName(const string & attachID);
2566
2597
2598extern string GetObjectName(const string & attachID);
2599
2600
2654
2655extern string GetObjectParent( const string & id );
2656
2685
2686extern string GetChildCollection(const string & attachID );
2687
2711
2712extern string GetGeomSetCollection( const int & index );
2713
2749
2750extern string GetAttributeName( const string & attrID );
2751
2790
2791extern string GetAttributeID(const string & collID, const string & attributeName, int index);
2792
2820
2821extern string GetAttributeDoc(const string & attrID);
2822
2861
2862extern int GetAttributeType( const string & attrID );
2863
2892
2893extern string GetAttributeTypeName(const string & attrID);
2894
2940
2941extern vector< int > GetAttributeBoolVal(const string & attrID);
2942
2988
2989extern vector< int > GetAttributeIntVal(const string & attrID);
2990
3035
3036extern vector< double > GetAttributeDoubleVal(const string & attrID);
3037
3082
3083extern vector< string > GetAttributeStringVal(const string & attrID);
3084
3142
3143extern vector< string > GetAttributeParmID(const string & attrID);
3144
3204
3205extern vector < double > GetAttributeParmVal( const string &attrID );
3206
3265
3266extern vector < string > GetAttributeParmName( const string &attrID );
3267
3316
3317extern vector< vec3d > GetAttributeVec3dVal(const string & attrID);
3318
3372
3373extern vector< vector < int > > GetAttributeIntMatrixVal(const string & attrID);
3374
3422
3423extern vector< vector < double > > GetAttributeDoubleMatrixVal(const string & attrID);
3424
3477
3478extern void SetAttributeName( const string & attrID, const string & name );
3479
3533
3534
3535extern void SetAttributeDoc( const string & attrID, const string & doc );
3536
3589
3590extern void SetAttributeBool( const string & attrID, bool value );
3591
3644
3645extern void SetAttributeInt( const string & attrID, int value );
3646
3702
3703extern void SetAttributeDouble( const string & attrID, double value );
3704
3758
3759extern void SetAttributeString( const string & attrID, const string & value );
3760
3824
3825extern void SetAttributeParmID( const string & attrID, const string & value );
3826
3880
3881extern void SetAttributeVec3d( const string & attrID, const vector < vec3d > value );
3882
3939
3940extern void SetAttributeIntMatrix( const string & attrID, const vector< vector< int > > value );
3941
3998
3999extern void SetAttributeDoubleMatrix( const string & attrID, const vector< vector< double > > value );
4000
4076
4077extern void DeleteAttribute( const string & attrID );
4078
4126
4127extern string AddAttributeBool( const string & collID, const string & attributeName, bool value );
4128
4177
4178extern string AddAttributeInt( const string & collID, const string & attributeName, const int value );
4179
4230
4231extern string AddAttributeDouble( const string & collID, const string & attributeName, const double value);
4232
4282
4283extern string AddAttributeString( const string & collID, const string & attributeName, const string & value );
4284
4345
4346extern string AddAttributeParm( const string &collID, const string &attributeName, const string &parmID );
4347
4400
4401extern string AddAttributeVec3d( const string & collID, const string & attributeName, const vector < vec3d > & value );
4402
4457
4458extern string AddAttributeIntMatrix( const string & collID, const string & attributeName, const vector < vector < int > > & value );
4459
4514
4515extern string AddAttributeDoubleMatrix( const string & collID, const string & attributeName, const vector < vector < double > > & value );
4516
4562
4563extern string AddAttributeGroup( const string & collID, const string & attributeName );
4564
4612
4613extern int CopyAttribute( const string & attrID );
4614
4684
4685extern void CutAttribute( const string & attrID );
4686
4771
4772extern vector < string > PasteAttribute( const string & coll_id );
4773
4774//======================== Results ================================//
4810
4811extern std::vector<std::string> GetAllResultsNames();
4812
4846
4847extern std::vector<std::string> GetAllDataNames( const std::string & results_id );
4848
4874
4875extern int GetNumResults( const std::string & name );
4876
4916
4917extern std::string GetResultsName(const std::string & results_id );
4918
4958
4959extern std::string GetResultsSetDoc( const std::string & results_id );
4960
4961extern std::string GetResultsEntryDoc( const std::string & results_id, const std::string & data_name );
4962
4993
4994extern std::string FindResultsID( const std::string & name, int index = 0 );
4995
5032
5033extern std::string FindLatestResultsID( const std::string & name );
5034
5081
5082extern int GetNumData( const std::string & results_id, const std::string & data_name );
5083
5124
5125extern int GetResultsType( const std::string & results_id, const std::string & data_name );
5126
5174
5175extern const std::vector< int > & GetIntResults( const std::string & id, const std::string & name, int index = 0 );
5176
5214
5215extern const std::vector< double > & GetDoubleResults( const std::string & id, const std::string & name, int index = 0 );
5216
5227
5228extern const std::vector< std::vector< double > > & GetDoubleMatResults( const std::string & id, const std:: string & name, int index = 0 );
5229
5265
5266extern const std::vector<std::string> & GetStringResults( const std::string & id, const std::string & name, int index = 0 );
5267
5323
5324extern const std::vector< vec3d > & GetVec3dResults( const std::string & id, const std::string & name, int index = 0 );
5325
5366
5367extern std::string CreateGeomResults( const std::string & geom_id, const std::string & name );
5368
5406
5407extern void DeleteAllResults();
5408
5447
5448extern void DeleteResult( const std::string & id );
5449
5483
5484extern void WriteResultsCSVFile( const std::string & id, const std::string & file_name );
5485
5520
5521extern void PrintResults( const std::string &results_id );
5522
5557
5558extern void PrintResultsDocs( const std::string &results_id );
5559
5593
5594extern void WriteTestResults();
5595
5596//======================== GUI Functions ================================//
5597
5618
5619extern void InitGUI();
5620
5643
5644extern void StartGUI();
5645
5678
5680
5709
5711
5742
5743extern void StopGUI();
5744
5771
5772extern void PopupMsg( const std::string &msg );
5773
5812
5813extern void UpdateGUI();
5814
5847
5848extern bool IsGUIBuild();
5849
5896
5897extern void Lock( );
5898
5942
5943extern void Unlock( );
5944
5945
5976
5977extern bool IsEventLoopRunning( );
5978
6011
6012extern void ScreenGrab( const string & fname, int w, int h, bool transparentBG, bool autocrop = false );
6013
6032
6033extern void SetViewAxis( bool vaxis );
6034
6053
6054extern void SetShowBorders( bool brdr );
6055
6080
6081extern void SetGeomDrawType(const string &geom_id, int type);
6082
6108
6109extern void SetGeomWireColor( const string &geom_id, int r, int g, int b );
6110
6135
6136extern void SetGeomDisplayType(const string &geom_id, int type);
6137
6160
6161extern void SetGeomMaterialName( const string &geom_id, const string &name );
6162
6194
6195extern void AddMaterial( const string &name, const vec3d & ambient, const vec3d & diffuse, const vec3d & specular, const vec3d & emissive, const double & alpha, const double & shininess );
6196
6223
6224extern vector < string > GetMaterialNames();
6225
6246
6247extern void SetBackground( double r, double g, double b );
6248
6267
6268extern void SetAllViews( int view );
6269
6288
6289extern void SetView( int viewport, int view );
6290
6308
6309extern void FitAllViews();
6310
6328
6329extern void ResetViews();
6330
6350
6351extern void SetWindowLayout( int r, int c );
6352
6371
6372extern void SetGUIElementDisable( int e, bool state );
6373
6392
6393extern void SetGUIScreenDisable( int s, bool state );
6394
6413extern void SetGeomScreenDisable( int s, bool state );
6414
6415
6416//======================== Geom Functions ================================//
6447
6448extern std::vector<std::string> GetGeomTypes();
6449
6472
6473extern std::string AddGeom( const std::string & type, const std::string & parent = std::string() );
6474
6510
6511extern void UpdateGeom( const std::string & geom_id );
6512
6543
6544extern void DeleteGeom( const std::string & geom_id );
6545
6578
6579extern void DeleteGeomVec( const std::vector< std::string > & del_vec );
6580
6620
6621extern void CutGeomToClipboard( const std::string & geom_id );
6622
6662
6663extern void CopyGeomToClipboard( const std::string & geom_id );
6664
6704
6705extern std::vector<std::string> PasteGeomClipboard( const std::string & parent = std::string() );
6706
6739
6740extern std::vector<std::string> FindGeoms();
6741
6780
6781extern std::vector<std::string> FindGeomsWithName( const std::string & name );
6782
6826
6827extern std::string FindGeom( const std::string & name, int index );
6828
6866
6867extern void SetGeomName( const std::string & geom_id, const std::string & name );
6868
6902
6903extern std::string GetGeomName( const std::string & geom_id );
6904
6938
6939extern std::vector<std::string> GetGeomParmIDs( const std::string & geom_id );
6940
6970
6971extern std::string GetGeomTypeName( const std::string & geom_id );
6972
7004
7005extern std::string GetParm( const std::string & geom_id, const std::string & name, const std::string & group );
7006
7058
7059extern void SetGeomParent( const std::string& geom_id, const std::string& parent_id );
7060
7094
7095extern std::string GetGeomParent( const std::string& geom_id );
7096
7145
7146extern std::vector< std::string > GetGeomChildren( const std::string& geom_id );
7147
7177
7178extern int GetNumXSecSurfs( const std::string & geom_id );
7179
7218
7219extern int GetNumMainSurfs( const std::string & geom_id );
7220
7259
7260extern int GetTotalNumSurfs( const std::string& geom_id );
7261
7293
7294extern int GetGeomVSPSurfType( const std::string& geom_id, int main_surf_ind = 0 );
7295
7327
7328extern int GetGeomVSPSurfCfdType( const std::string& geom_id, int main_surf_ind = 0 );
7329
7369
7370extern vec3d GetGeomBBoxMax( const std::string& geom_id, int main_surf_ind = 0, bool ref_frame_is_absolute = true );
7371
7411
7412extern vec3d GetGeomBBoxMin( const std::string& geom_id, int main_surf_ind = 0, bool ref_frame_is_absolute = true );
7413
7414
7415//======================== SubSurface Functions ================================//
7448
7449extern std::string AddSubSurf( const std::string & geom_id, int type, int surfindex = 0 );
7450
7491
7492extern std::string GetSubSurf( const std::string & geom_id, int index );
7493
7534
7535extern std::vector<std::string> GetSubSurf( const std::string & geom_id, const std::string & name );
7536
7582
7583extern void DeleteSubSurf( const std::string & geom_id, const std::string & sub_id );
7584
7629
7630extern void DeleteSubSurf( const std::string & sub_id );
7631
7664
7665extern void SetSubSurfName(const std::string & geom_id, const std::string & sub_id, const std::string & name);
7666
7698
7699extern void SetSubSurfName( const std::string & sub_id, const std::string & name );
7700
7737
7738extern std::string GetSubSurfName( const std::string & geom_id, const std::string & sub_id );
7739
7775
7776extern std::string GetSubSurfName( const std::string & sub_id );
7777
7815
7816extern int GetSubSurfIndex( const std::string & sub_id );
7817
7880
7881extern std::vector<std::string> GetSubSurfIDVec( const std::string & geom_id );
7882
7890
7891extern std::vector<std::string> GetAllSubSurfIDs();
7892
7930
7931extern int GetNumSubSurf( const std::string & geom_id );
7932
7996
7997extern int GetSubSurfType( const std::string & sub_id );
7998
8043
8044extern std::vector<std::string> GetSubSurfParmIDs( const std::string & sub_id );
8045
8046
8077
8078extern int AddFeaStruct( const std::string & geom_id, bool init_skin = true, int surfindex = 0 );
8079
8115
8116extern void SetFeaMeshStructIndex( int struct_index );
8117
8153
8154extern void DeleteFeaStruct( const std::string & geom_id, int fea_struct_ind );
8155
8188
8189extern std::string GetFeaStructID( const std::string & geom_id, int fea_struct_ind );
8190
8234
8235extern int GetFeaStructIndex( const std::string & struct_id );
8236
8274
8275extern std::string GetFeaStructParentGeomID( const std::string & struct_id );
8276
8320
8321extern std::string GetFeaStructName( const std::string & geom_id, int fea_struct_ind );
8322
8370
8371extern void SetFeaStructName( const std::string & geom_id, int fea_struct_ind, const std::string & name );
8372
8408
8409extern std::vector< std::string > GetFeaStructIDVec();
8410
8449
8450extern void SetFeaPartName( const std::string & part_id, const std::string & name );
8451
8496
8497extern std::string AddFeaPart( const std::string & geom_id, int fea_struct_ind, int type );
8498
8545
8546extern void DeleteFeaPart( const std::string & geom_id, int fea_struct_ind, const std::string & part_id );
8547
8599
8600extern std::string GetFeaPartID( const std::string & fea_struct_id, int fea_part_index );
8601
8651
8652extern std::string GetFeaPartName( const std::string & part_id );
8653
8697
8698extern int GetFeaPartType( const std::string & part_id );
8699
8744
8745extern std::vector< std::string > GetFeaPartIDVec( const std::string & fea_struct_id );
8746
8791
8792extern std::vector< std::string > GetFeaSubSurfIDVec( const std::string & fea_struct_id );
8793
8862
8863extern void SetFeaPartPerpendicularSparID( const std::string& part_id, const std::string& perpendicular_spar_id );
8864
8932
8933extern std::string GetFeaPartPerpendicularSparID( const std::string& part_id );
8934
8973
8974extern void SetFeaSubSurfName( const std::string & subsurf_id, const std::string & name );
8975
9023
9024extern std::string GetFeaSubSurfName( const std::string & subsurf_id );
9025
9070
9071extern std::string AddFeaSubSurf( const std::string & geom_id, int fea_struct_ind, int type );
9072
9119
9120extern void DeleteFeaSubSurf( const std::string & geom_id, int fea_struct_ind, const std::string & ss_id );
9121
9176
9177extern int GetFeaSubSurfIndex( const string & ss_id );
9178
9216
9217extern int NumFeaStructures();
9218
9268
9269extern int NumFeaParts( const std::string & fea_struct_id );
9270
9319
9320extern int NumFeaSubSurfs( const std::string & fea_struct_id );
9321
9362
9363extern std::string AddFeaBC( const string & fea_struct_id, int type = -1 );
9364
9408
9409extern void DelFeaBC( const string & fea_struct_id, const std::string &bc_id );
9410
9454
9455extern std::vector< std::string > GetFeaBCIDVec( const string & fea_struct_id );
9456
9500
9501extern int NumFeaBCs( const string & fea_struct_id );
9502
9527
9528extern std::string AddFeaMaterial();
9529
9557
9558extern std::string AddFeaProperty( int property_type = 0 );
9559
9601
9602extern void SetFeaMeshVal( const std::string & geom_id, int fea_struct_ind, int type, double val );
9603
9653
9654extern void SetFeaMeshFileName( const std::string & geom_id, int fea_struct_ind, int file_type, const string & file_name );
9655
9706
9707extern void ComputeFeaMesh( const std::string & geom_id, int fea_struct_ind, int file_type );
9708
9758
9759extern void ComputeFeaMesh( const std::string & struct_id, int file_type );
9760
9818
9819extern void SetXSecAlias( const string & id, const string & alias );
9820
9878
9879extern string GetXSecAlias( const string & id );
9880
9938
9939extern void SetXSecCurveAlias( const string & id, const string & alias );
9940
9997
9998extern string GetXSecCurveAlias( const string & id );
9999
10038
10039extern void CutXSec( const std::string & geom_id, int index );
10040
10075
10076extern void CopyXSec( const std::string & geom_id, int index );
10077
10112
10113extern void PasteXSec( const std::string & geom_id, int index );
10114
10142
10143extern void InsertXSec( const std::string & geom_id, int index, int type );
10144
10145
10146//======================== Wing Section Functions ===================//
10147
10177
10178extern void SplitWingXSec( const string & wing_id, int section_index );
10179
10227
10228extern void SetDriverGroup( const std::string & geom_id, int section_index, int driver_0, int driver_1 = -1, int driver_2 = -1 );
10229
10230
10231//======================== XSecSurf ================================//
10260
10261extern std::string GetXSecSurf( const std::string & geom_id, int index );
10262
10313
10314extern int GetNumXSec( const std::string & xsec_surf_id );
10315
10350
10351extern std::string GetXSec( const std::string & xsec_surf_id, int xsec_index );
10352
10402
10403extern void ChangeXSecShape( const std::string & xsec_surf_id, int xsec_index, int type );
10404
10413
10414extern void SetXSecSurfGlobalXForm( const std::string & xsec_surf_id, const Matrix4d & mat );
10415
10424
10425extern Matrix4d GetXSecSurfGlobalXForm( const std::string & xsec_surf_id );
10426
10427
10428//======================== XSec ================================//
10469
10470extern int GetXSecShape( const std::string& xsec_id );
10471
10510
10511extern double GetXSecWidth( const std::string& xsec_id );
10512
10551
10552extern double GetXSecHeight( const std::string& xsec_id );
10553
10594
10595extern void SetXSecWidthHeight( const std::string& xsec_id, double w, double h );
10596
10635
10636extern void SetXSecWidth( const std::string& xsec_id, double w );
10637
10676
10677extern void SetXSecHeight( const std::string& xsec_id, double h );
10678
10716
10717extern std::vector<std::string> GetXSecParmIDs( const std::string& xsec_id );
10718
10761
10762extern std::string GetXSecParm( const std::string& xsec_id, const std::string& name );
10763
10803
10804extern std::vector<vec3d> ReadFileXSec( const std::string& xsec_id, const std::string& file_name );
10805
10858
10859extern void SetXSecPnts( const std::string& xsec_id, std::vector< vec3d > & pnt_vec );
10860
10902
10903extern vec3d ComputeXSecPnt( const std::string& xsec_id, double fract );
10904
10945
10946extern vec3d ComputeXSecTan( const std::string& xsec_id, double fract );
10947
10988
10989extern void ResetXSecSkinParms( const std::string& xsec_id );
10990
11031
11032extern void SetXSecContinuity( const std::string& xsec_id, int cx );
11033
11083
11084extern void SetXSecTanAngles( const std::string& xsec_id, int side, double top, double right, double bottom, double left );
11085
11135
11136extern void SetXSecTanSlews( const std::string& xsec_id, int side, double top, double right, double bottom, double left );
11137
11189
11190extern void SetXSecTanStrengths( const std::string& xsec_id, int side, double top, double right, double bottom, double left );
11191
11243
11244extern void SetXSecCurvatures( const std::string& xsec_id, int side, double top, double right, double bottom, double left );
11245
11283
11284extern void ReadFileAirfoil( const std::string& xsec_id, const std::string& file_name );
11285
11340
11341extern void SetAirfoilUpperPnts( const std::string& xsec_id, const std::vector< vec3d > & up_pnt_vec );
11342
11397
11398extern void SetAirfoilLowerPnts( const std::string& xsec_id, const std::vector< vec3d > & low_pnt_vec );
11399
11463
11464extern void SetAirfoilPnts( const std::string& xsec_id, const std::vector< vec3d > & up_pnt_vec, const std::vector< vec3d > & low_pnt_vec );
11465
11513
11514extern std::vector<vec3d> GetHersheyBarLiftDist( const int &npts, const double &alpha, const double &Vinf, const double &span, bool full_span_flag = false );
11515
11563
11564extern std::vector<vec3d> GetHersheyBarDragDist( const int &npts, const double &alpha, const double &Vinf, const double &span, bool full_span_flag = false );
11565
11617
11618extern std::vector<vec3d> GetVKTAirfoilPnts( const int &npts, const double &alpha, const double &epsilon, const double &kappa, const double &tau );
11619
11672
11673extern std::vector<double> GetVKTAirfoilCpDist( const double &alpha, const double &epsilon, const double &kappa, const double &tau, const std::vector<vec3d> &xyz_data );
11674
11688
11689extern std::vector<vec3d> GetEllipsoidSurfPnts( const vec3d &center, const vec3d &abc_rad, int u_npts = 20, int w_npts = 20 );
11690
11699
11700extern std::vector<vec3d> GetFeatureLinePnts( const string& geom_id );
11701
11783
11784extern std::vector<double> GetEllipsoidCpDist( const std::vector<vec3d> &surf_pnt_vec, const vec3d &abc_rad, const vec3d &V_inf );
11785
11786extern double IntegrateEllipsoidFlow( const vec3d &abc_rad, const int &abc_index );
11787
11830
11831extern std::vector<vec3d> GetAirfoilUpperPnts( const std::string& xsec_id );
11832
11875
11876extern std::vector<vec3d> GetAirfoilLowerPnts( const std::string& xsec_id );
11877
11887
11888extern std::vector<double> GetUpperCSTCoefs( const std::string& xsec_id );
11889
11899
11900extern std::vector<double> GetLowerCSTCoefs( const std::string& xsec_id );
11901
11911
11912extern int GetUpperCSTDegree( const std::string& xsec_id );
11913
11923
11924extern int GetLowerCSTDegree( const std::string& xsec_id );
11925
11936
11937extern void SetUpperCST( const std::string& xsec_id, int deg, const std::vector<double> &coefs );
11938
11949
11950extern void SetLowerCST( const std::string& xsec_id, int deg, const std::vector<double> &coefs );
11951
11960
11961extern void PromoteCSTUpper( const std::string& xsec_id );
11962
11971
11972extern void PromoteCSTLower( const std::string& xsec_id );
11973
11982
11983extern void DemoteCSTUpper( const std::string& xsec_id );
11984
11993
11994extern void DemoteCSTLower( const std::string& xsec_id );
11995
12005
12006extern void FitAfCST( const std::string & xsec_surf_id, int xsec_index, int deg );
12007
12008//======================== Background3D Functions ======================//
12009
12046
12047extern string AddBackground3D();
12048
12085
12087
12139
12140extern vector < string > GetAllBackground3Ds();
12141
12172
12174
12205
12207
12247
12249
12290
12291extern void DelBackground3D( const string &id );
12292
12333
12334extern vector < string > GetAllBackground3DRelativePaths();
12335
12375
12376extern vector < string > GetAllBackground3DAbsolutePaths();
12377
12413
12414extern string GetBackground3DRelativePath( const string &id );
12415
12450
12451extern string GetBackground3DAbsolutePath( const string &id );
12452
12488
12489extern void SetBackground3DRelativePath( const string &id, const string &fname );
12490
12525
12526extern void SetBackground3DAbsolutePath( const string &id, const string &fname );
12527
12528
12529//======================== RoutingGeom Functions ======================//
12585
12586extern int GetNumRoutingPts( const string &routing_id );
12587
12642
12643extern string AddRoutingPt( const string &routing_id, const string &geom_id, int surf_index );
12644
12711
12712extern string InsertRoutingPt( const string &routing_id, int index, const string &geom_id, int surf_index );
12713
12769
12770extern void DelRoutingPt( const string &routing_id, int index );
12771
12827
12828extern void DelAllRoutingPt( const string &routing_id );
12829
12886
12887extern int MoveRoutingPt( const string &routing_id, int index, int reorder_type );
12888
12945
12946extern string GetRoutingPtID( const string &routing_id, int index );
12947
13003
13004extern vector < string > GetAllRoutingPtIds( const string &routing_id );
13005
13061
13062extern string GetRoutingPtParentID( const string & pt_id );
13063
13119
13120extern void SetRoutingPtParentID( const string & pt_id, const string &parent_id );
13121
13180
13181extern vec3d GetMainRoutingPtCoord( const string &pt_id );
13182
13242
13243extern vec3d GetRoutingPtCoord( const string &routing_id, int index, int symm_index );
13244
13303
13304extern vector < vec3d > GetAllRoutingPtCoords( const string &routing_id, int symm_index );
13305
13306//======================== BOR Functions ======================//
13337
13338extern void ChangeBORXSecShape( const string & bor_id, int type );
13339
13369
13370extern int GetBORXSecShape( const string & bor_id );
13371
13402
13403extern std::vector<vec3d> ReadBORFileXSec( const std::string& bor_id, const std::string& file_name );
13404
13448
13449extern void SetBORXSecPnts( const std::string& bor_id, std::vector< vec3d > & pnt_vec );
13450
13483
13484extern vec3d ComputeBORXSecPnt( const std::string& bor_id, double fract );
13485
13516
13517extern vec3d ComputeBORXSecTan( const std::string& bor_id, double fract );
13518
13548
13549extern void ReadBORFileAirfoil( const std::string& bor_id, const std::string& file_name );
13550
13597
13598extern void SetBORAirfoilUpperPnts( const std::string& bor_id, const std::vector< vec3d > & up_pnt_vec );
13599
13646
13647extern void SetBORAirfoilLowerPnts( const std::string& bor_id, const std::vector< vec3d > & low_pnt_vec );
13648
13704
13705extern void SetBORAirfoilPnts( const std::string& bor_id, const std::vector< vec3d > & up_pnt_vec, const std::vector< vec3d > & low_pnt_vec );
13706
13741
13742extern std::vector<vec3d> GetBORAirfoilUpperPnts( const std::string& bor_id );
13743
13778
13779extern std::vector<vec3d> GetBORAirfoilLowerPnts( const std::string& bor_id );
13780
13790
13791extern std::vector<double> GetBORUpperCSTCoefs( const std::string& bor_id );
13792
13802
13803extern std::vector<double> GetBORLowerCSTCoefs( const std::string& bor_id );
13804
13814
13815extern int GetBORUpperCSTDegree( const std::string& bor_id );
13816
13826
13827extern int GetBORLowerCSTDegree( const std::string& bor_id );
13828
13839
13840extern void SetBORUpperCST( const std::string& bor_id, int deg, const std::vector<double> &coefs );
13841
13852
13853extern void SetBORLowerCST( const std::string& bor_id, int deg, const std::vector<double> &coefs );
13854
13863
13864extern void PromoteBORCSTUpper( const std::string& bor_id );
13865
13874
13875extern void PromoteBORCSTLower( const std::string& bor_id );
13876
13885
13886extern void DemoteBORCSTUpper( const std::string& bor_id );
13887
13896
13897extern void DemoteBORCSTLower( const std::string& bor_id );
13898
13907
13908extern void FitBORAfCST( const std::string & bor_id, int deg );
13909
13910
13911//======================== FoilSurf Functions ======================//
13945
13946extern void WriteBezierAirfoil( const std::string & file_name, const std::string & geom_id, const double &foilsurf_u );
13947
13981
13982extern void WriteSeligAirfoil( const std::string & file_name, const std::string & geom_id, const double &foilsurf_u );
13983
13993
13994extern std::vector < vec3d > GetAirfoilCoordinates( const std::string & geom_id, const double &foilsurf_u );
13995
13996
13997//======================== Edit Curve XSec Functions ======================//
14045
14046extern void EditXSecInitShape( const std::string & xsec_id );
14047
14093
14094extern void EditXSecConvertTo( const std::string & xsec_id, const int & newtype );
14095
14151
14152extern std::vector < double > GetEditXSecUVec( const std::string& xsec_id );
14153
14202
14203extern std::vector < vec3d > GetEditXSecCtrlVec( const std::string & xsec_id, bool non_dimensional = true );
14204
14311
14312extern void SetEditXSecPnts( const std::string & xsec_id, const std::vector < double > &u_vec, const std::vector < vec3d > &control_pts, const std::vector < double > &r_vec );
14313
14379
14380extern void EditXSecDelPnt( const std::string & xsec_id, const int & indx );
14381
14446
14447extern int EditXSecSplit01( const std::string & xsec_id, const double & u );
14448
14528
14529extern void MoveEditXSecPnt( const std::string & xsec_id, const int & indx, const vec3d & new_pnt );
14530
14580
14581extern void ConvertXSecToEdit( const std::string & geom_id, const int & indx = 0 );
14582
14638
14639extern std::vector < bool > GetEditXSecFixedUVec( const std::string& xsec_id );
14640
14696
14697extern void SetEditXSecFixedUVec( const std::string& xsec_id, std::vector < bool > fixed_u_vec );
14698
14754
14755extern void ReparameterizeEditXSec( const std::string & xsec_id );
14756
14757
14758//======================== Sets ================================//
14778
14779extern int GetNumSets();
14780
14807
14808extern void SetSetName( int index, const std::string& name );
14809
14836
14837extern std::string GetSetName( int index );
14838
14871
14872extern std::vector<std::string> GetGeomSetAtIndex( int index );
14873
14905
14906extern std::vector<std::string> GetGeomSet( const std::string & name );
14907
14933
14934extern int GetSetIndex( const std::string & name );
14935
14968
14969extern bool GetSetFlag( const std::string & geom_id, int set_index );
14970
15003
15004extern void SetSetFlag( const std::string & geom_id, int set_index, bool flag );
15005
15049
15050extern void CopyPasteSet( int copyIndex, int pasteIndex );
15051
15052
15053//======================== Group Modifications ================================//
15085
15086extern void ScaleSet( int set_index, double scale );
15087
15121
15122extern void RotateSet( int set_index, double x_rot_deg, double y_rot_deg, double z_rot_deg );
15123
15155
15156extern void TranslateSet( int set_index, const vec3d &translation_vec );
15157
15195
15196extern void TransformSet( int set_index, const vec3d &translation_vec, double x_rot_deg, double y_rot_deg, double z_rot_deg, double scale, bool scale_translations_flag );
15197
15198
15199//======================== Parm Functions ================================//
15229
15230extern bool ValidParm( const std::string & id );
15231
15279
15280extern double SetParmVal( const std::string & parm_id, double val );
15281
15331
15332extern double SetParmVal( const std::string & geom_id, const std::string & name, const std::string & group, double val );
15333
15369
15370extern double SetParmValLimits( const std::string & parm_id, double val, double lower_limit, double upper_limit );
15371
15403
15404extern double SetParmValUpdate( const std::string & parm_id, double val );
15405
15439
15440extern double SetParmValUpdate( const std::string & geom_id, const std::string & parm_name, const std::string & parm_group_name, double val );
15441
15487
15488extern double GetParmVal( const std::string & parm_id );
15489
15537
15538extern double GetParmVal( const std::string & geom_id, const std::string & name, const std::string & group );
15539
15569
15570extern int GetIntParmVal( const std::string & parm_id );
15571
15601
15602extern bool GetBoolParmVal( const std::string & parm_id );
15603
15654
15655extern void SetParmUpperLimit( const std::string & parm_id, double val );
15656
15686
15687extern double GetParmUpperLimit( const std::string & parm_id );
15688
15739
15740extern void SetParmLowerLimit( const std::string & parm_id, double val );
15741
15771
15772extern double GetParmLowerLimit( const std::string & parm_id );
15773
15816
15817extern int GetParmType( const std::string & parm_id );
15818
15875
15876extern std::string GetParmName( const std::string & parm_id );
15877
15920
15921extern std::string GetParmGroupName( const std::string & parm_id );
15922
15965
15966extern std::string GetParmDisplayGroupName( const std::string & parm_id );
15967
16013
16014extern std::string GetParmContainer( const std::string & parm_id );
16015
16047
16048extern void SetParmDescript( const std::string & parm_id, const std::string & desc );
16049
16083
16084extern std::string GetParmDescript( const std::string & parm_id );
16085
16119
16120extern std::string FindParm( const std::string & parm_container_id, const std::string& parm_name, const std::string& group_name );
16121
16122
16123//======================== Parm Container Functions ======================//
16124
16160
16161extern std::vector<std::string> FindContainers();
16162
16186
16187extern std::vector<std::string> FindContainersWithName( const std::string & name );
16188
16212
16213extern std::string FindContainer( const std::string & name, int index );
16214
16238
16239extern std::string GetContainerName( const std::string & parm_container_id );
16240
16279
16280extern std::vector<std::string> FindContainerGroupNames( const std::string & parm_container_id );
16281
16338
16339extern std::vector<std::string> FindContainerParmIDs( const std::string & parm_container_id );
16340
16361
16362extern std::string GetVehicleID();
16363
16364
16365//======================== User Parm Functions ======================//
16386
16387extern int GetNumUserParms();
16388
16409
16411
16447
16448extern std::vector < std::string > GetAllUserParms();
16449
16468
16469extern std::string GetUserParmContainer();
16470
16501
16502extern string AddUserParm(int type, const string & name, const string & group );
16503
16533
16534extern void DeleteUserParm( const std::string & id );
16535
16553
16554extern void DeleteAllUserParm();
16555
16556
16557//======================== Snap To Functions ======================//
16600
16601extern double ComputeMinClearanceDistance( const std::string & geom_id, int set = SET_ALL, bool useMode = false, const string &modeID = string() );
16602 // TODO: Validate inc_flag description
16649
16650extern double SnapParm( const std::string & parm_id, double target_min_dist, bool inc_flag, int set = SET_ALL, bool useMode = false, const string &modeID = string() );
16651
16652
16653//======================== Variable Preset Functions ======================//
16654
16680
16681extern string AddVarPresetGroup( const std::string &group_name );
16682
16714
16715extern string AddVarPresetSetting( const std::string &group_id, const std::string &setting_name );
16716
16754
16755extern void AddVarPresetParm( const std::string &group_id, const std::string &parm_id );
16756
16798
16799extern void DeleteVarPresetGroup( const std::string &group_id );
16800
16843
16844extern void DeleteVarPresetSetting( const std::string &group_id, const std::string &setting_id );
16845
16888
16889extern void DeleteVarPresetParm( const std::string &group_id, const std::string &parm_id );
16890
16935
16936extern void SetVarPresetParmVal( const std::string &group_id, const std::string &setting_id, const std::string &parm_id, double parm_val );
16937
16982
16983extern double GetVarPresetParmVal( const std::string &group_id, const std::string &setting_id, const std::string &parm_id );
16984
17015
17016extern std::string GetGroupName( const std::string &group_id );
17017
17052
17053extern std::string GetSettingName( const std::string &setting_id );
17054
17085
17086extern void SetGroupName( const std::string &group_id, const std::string &group_name );
17087
17122
17123extern void SetSettingName( const std::string &setting_id, const std::string &setting_name );
17124
17166
17167extern std::vector< std::string > GetVarPresetGroups();
17168
17211
17212extern std::vector< std::string > GetVarPresetSettings( const std::string &group_id );
17213
17256
17257extern std::vector< std::string > GetVarPresetParmIDs( const std::string &group_id );
17258
17302
17303extern std::vector< double > GetVarPresetParmVals( const std::string &setting_id );
17304
17351
17352extern void SetVarPresetParmVals( const std::string &setting_id, const std::vector< double > &parm_vals );
17353
17396
17397extern void SaveVarPresetParmVals( const std::string &group_id, const std::string &setting_id );
17398
17445
17446extern void ApplyVarPresetSetting( const std::string &group_id, const std::string &setting_id );
17447
17448//======================== Mode Functions ======================//
17449
17604
17605extern string CreateAndAddMode( const string & name, int normal_set, int degen_set );
17606
17762
17763extern int GetNumModes();
17764
17920
17921extern vector < string > GetAllModes();
17922
18078
18079extern void DelMode( const string &mid );
18080
18235
18236extern void DelAllModes();
18237
18389
18390extern void ApplyModeSettings( const string &mid );
18391
18547
18548extern void ShowOnlyMode( const string &mid );
18549
18703
18704extern void ModeAddGroupSetting( const string &mid, const string &gid, const string &sid );
18705
18863
18864extern string ModeGetGroup( const string &mid, int indx );
18865
19023
19024extern string ModeGetSetting( const string &mid, int indx );
19025
19182
19183extern vector < string > ModeGetAllGroups( const string &mid );
19184
19341
19342extern vector < string > ModeGetAllSettings( const string &mid );
19343
19500
19501extern void RemoveGroupSetting( const string &mid, int indx );
19502
19658
19659extern void RemoveAllGroupSettings( const string &mid );
19660
19661//======================== Parametric Curve Functions ======================//
19674
19675extern void SetPCurve( const std::string & geom_id, const int & pcurveid, const std::vector < double > & tvec,
19676
19677 const std::vector < double > & valvec, const int & newtype );
19688
19689extern void PCurveConvertTo( const std::string & geom_id, const int & pcurveid, const int & newtype );
19690
19701
19702extern int PCurveGetType( const std::string & geom_id, const int & pcurveid );
19703
19713
19714extern std::vector < double > PCurveGetTVec( const std::string & geom_id, const int & pcurveid );
19715
19725
19726extern std::vector < double > PCurveGetValVec( const std::string & geom_id, const int & pcurveid );
19727
19737
19738extern void PCurveDeletePt( const std::string & geom_id, const int & pcurveid, const int & indx );
19739
19750
19751extern int PCurveSplit( const std::string & geom_id, const int & pcurveid, const double & tsplit );
19752
19779
19780extern void ApproximateAllPropellerPCurves( const std::string & geom_id );
19781
19810
19811extern void ResetPropellerThicknessCurve( const std::string & geom_id );
19812
19813
19814//======================== VSPAERO Functions ======================//
19905
19907
19944
19946
19977
19978extern void AddAllToVSPAEROControlSurfaceGroup( int CSGroupIndex );
19979
20014
20015extern void RemoveAllFromVSPAEROControlSurfaceGroup( int CSGroupIndex );
20016
20067
20068extern std::vector < std::string > GetActiveCSNameVec( int CSGroupIndex );
20069
20113
20114extern std::vector < std::string > GetCompleteCSNameVec();
20115
20156
20157extern std::vector < std::string > GetAvailableCSNameVec( int CSGroupIndex );
20158
20198
20199extern void SetVSPAEROControlGroupName(const string & name, int CSGroupIndex);
20200
20239
20240extern std::string GetVSPAEROControlGroupName( int CSGroupIndex );
20241
20295
20296extern void AddSelectedToCSGroup( const vector <int> &selected, int CSGroupIndex);
20297
20360
20361extern void RemoveSelectedFromCSGroup( const vector <int> &selected, int CSGroupIndex);
20362
20417
20419
20420
20421//================ VSPAERO Actuator Disk and Unsteady Functions ==============//
20469
20470extern std::string FindActuatorDisk( int disk_index );
20471
20513
20515
20561
20562extern std::string FindUnsteadyGroup( int group_index );
20563
20598
20599extern std::string GetUnsteadyGroupName( int group_index );
20600
20643
20644extern std::vector < std::string > GetUnsteadyGroupCompIDs( int group_index );
20645
20688
20689extern std::vector < int > GetUnsteadyGroupSurfIndexes( int group_index );
20690
20741
20743
20795
20797
20798
20799//======================== Parasite Drag Tool Functions ======================//
20825
20826extern void AddExcrescence(const std::string & excresName, const int & excresType, const double & excresVal);
20827
20858
20859extern void DeleteExcrescence(const int & index);
20860
20867
20869
20895
20896extern void WriteAtmosphereCSVFile( const std::string & file_name, const int &atmos_type );
20897
20936
20937extern void CalcAtmosphere( const double & alt, const double & delta_temp, const int & atmos_type,
20938
20939 double & temp, double & pres, double & pres_ratio, double & rho_ratio );
20960
20961extern void WriteBodyFFCSVFile( const std::string & file_name );
20962
20983
20984extern void WriteWingFFCSVFile( const std::string & file_name );
20985 // TODO: Improve description
21006
21007extern void WriteCfEqnCSVFile( const std::string & file_name );
21008 // TODO: Improve description
21029
21030extern void WritePartialCfMethodCSVFile( const std::string & file_name );
21031
21032
21033//======================== Surface Query Functions ======================//
21076
21077extern vec3d CompPnt01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w);
21078
21121
21122extern vec3d CompNorm01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w);
21123
21166
21167extern vec3d CompTanU01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w);
21168
21211
21212extern vec3d CompTanW01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w);
21213
21263
21264extern void CompCurvature01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w,
21265 double &k1_out, double &k2_out, double &ka_out, double &kg_out);
21266
21329
21330extern double ProjPnt01(const std::string &geom_id, const int &surf_indx, const vec3d &pt, double &u_out, double &w_out);
21331
21401
21402extern double ProjPnt01I(const std::string &geom_id, const vec3d &pt, int &surf_indx_out, double &u_out, double &w_out);
21403
21473
21474extern double ProjPnt01Guess(const std::string &geom_id, const int &surf_indx, const vec3d &pt, const double &u0, const double &w0, double &u_out, double &w_out);
21475
21476
21537
21538extern double AxisProjPnt01(const std::string &geom_id, const int &surf_indx, const int &iaxis, const vec3d &pt, double &u_out, double &w_out);
21539
21602
21603extern double AxisProjPnt01I(const std::string &geom_id, const int &iaxis, const vec3d &pt, int &surf_indx_out, double &u_out, double &w_out);
21604
21677
21678extern double AxisProjPnt01Guess(const std::string &geom_id, const int &surf_indx, const int &iaxis, const vec3d &pt, const double &u0, const double &w0, double &u_out, double &w_out);
21679
21741
21742extern bool InsideSurf( const std::string &geom_id, const int &surf_indx, const vec3d &pt );
21743
21744
21790
21791extern vec3d CompPntRST( const std::string &geom_id, const int &surf_indx, const double &r, const double &s, const double &t );
21792
21848
21849extern double FindRST( const std::string &geom_id, const int &surf_indx, const vec3d &pt, double &r_out, double &s_out, double &t_out );
21850
21918
21919extern double FindRSTGuess( const std::string &geom_id, const int &surf_indx, const vec3d &pt, const double &r0, const double &s0, const double &t0, double &r_out, double &s_out, double &t_out );
21920
21921
21968
21969extern void ConvertRSTtoLMN( const std::string &geom_id, const int &surf_indx, const double &r, const double &s, const double &t, double &l_out, double &m_out, double &n_out );
21970
22009
22010extern void ConvertRtoL( const std::string &geom_id, const int &surf_indx, const double &r, double &l_out );
22011
22058
22059extern void ConvertLMNtoRST( const std::string &geom_id, const int &surf_indx, const double &l, const double &m, const double &n, double &r_out, double &s_out, double &t_out );
22098extern void ConvertLtoR( const std::string &geom_id, const int &surf_indx, const double &l, double &r_out );
22099
22137
22138extern void ConvertUtoEta( const std::string &geom_id, const double &u, double &eta_out );
22139
22177
22178extern void ConvertEtatoU( const std::string &geom_id, const double &eta, double &u_out );
22179
22180
22234
22235extern std::vector < vec3d > CompVecPnt01(const std::string &geom_id, const int &surf_indx, const std::vector < double > &u_in_vec, const std::vector < double > &w_in_vec);
22236
22290
22291extern std::vector < vec3d > CompVecNorm01(const std::string &geom_id, const int &surf_indx, const std::vector < double > &us, const std::vector < double > &ws);
22292
22353
22354extern void CompVecCurvature01(const std::string &geom_id, const int &surf_indx, const std::vector < double > &us, const std::vector < double > &ws, std::vector < double > &k1_out_vec, std::vector < double > &k2_out_vec, std::vector < double > &ka_out_vec, std::vector < double > &kg_out_vec);
22355
22431
22432extern void ProjVecPnt01(const std::string &geom_id, const int &surf_indx, const std::vector < vec3d > &pts, std::vector < double > &u_out_vec, std::vector < double > &w_out_vec, std::vector < double > &d_out_vec );
22433
22531
22532extern void ProjVecPnt01Guess(const std::string &geom_id, const int &surf_indx, const std::vector < vec3d > &pts, const std::vector < double > &u0s, const std::vector < double > &w0s, std::vector < double > &u_out_vec, std::vector < double > &w_out_vec, std::vector < double > &d_out_vec );
22533
22534
22635
22636extern void AxisProjVecPnt01(const std::string &geom_id, const int &surf_indx, const int &iaxis, const std::vector < vec3d > &pts, std::vector < double > &u_out_vec, std::vector < double > &w_out_vec, std::vector < double > &d_out_vec );
22637
22749
22750extern void AxisProjVecPnt01Guess(const std::string &geom_id, const int &surf_indx, const int &iaxis, const std::vector < vec3d > &pts, const std::vector < double > &u0s, const std::vector < double > &w0s, std::vector < double > &u_out_vec, std::vector < double > &w_out_vec, std::vector < double > &d_out_vec );
22751
22824
22825extern std::vector < bool > VecInsideSurf( const std::string &geom_id, const int &surf_indx, const std::vector < vec3d > &pts );
22826
22827
22888
22889extern std::vector < vec3d > CompVecPntRST( const std::string &geom_id, const int &surf_indx, const std::vector < double > &r_in_vec, const std::vector < double > &s_in_vec, const std::vector < double > &t_in_vec );
22890
22962
22963extern void FindRSTVec( const std::string &geom_id, const int &surf_indx, const std::vector < vec3d > &pts, std::vector < double > &r_out_vec, std::vector < double > &s_out_vec, std::vector < double > &t_out_vec, std::vector < double > &d_out_vec );
22964
23047
23048extern void FindRSTVecGuess( const std::string &geom_id, const int &surf_indx, const std::vector < vec3d > &pts, const std::vector < double > &r0s, const std::vector < double > &s0s, const std::vector < double > &t0s, std::vector < double > &r_out_vec, std::vector < double > &s_out_vec, std::vector < double > &t_out_vec, std::vector < double > &d_out_vec );
23049
23050
23117
23118extern void ConvertRSTtoLMNVec( const std::string &geom_id, const int &surf_indx, const std::vector < double > &r_vec, const std::vector < double > &s_vec, const std::vector < double > &t_vec,
23119 std::vector < double > &l_out_vec, std::vector < double > &m_out_vec, std::vector < double > &n_out_vec );
23120
23186
23187extern void ConvertLMNtoRSTVec( const std::string &geom_id, const int &surf_indx, const std::vector < double > &l_vec, const std::vector < double > &m_vec, const std::vector < double > &n_vec,
23188 std::vector < double > &r_out_vec, std::vector < double > &s_out_vec, std::vector < double > &t_out_vec );
23189
23223
23224extern void GetUWTess01(const std::string &geom_id, const int &surf_indx, std::vector < double > &u_out_vec, std::vector < double > &w_out_vec);
23225
23226
23227//======================= Measure Functions ============================//
23275
23276extern string AddRuler( const string & startgeomid, int startsurfindx, double startu, double startw,
23277 const string & endgeomid, int endsurfindx, double endu, double endw, const string & name );
23333
23334extern std::vector < string > GetAllRulers();
23335
23382
23383extern void DelRuler( const string &id );
23384
23426
23427extern void DeleteAllRulers();
23428
23429
23465
23466extern string AddProbe( const string & geomid, int surfindx, double u, double w, const string & name );
23467
23506
23507extern std::vector < string > GetAllProbes();
23508
23549
23550extern void DelProbe( const string &id );
23551
23591
23592extern void DeleteAllProbes();
23593
23594
23595//======================= Advanced Link Functions ============================//
23596
23624
23625extern std::vector< std::string > GetAdvLinkNames();
23626
23673
23674extern int GetLinkIndex( const string & name );
23675
23739
23740extern void DelAdvLink( int index );
23741
23804
23805extern void DelAllAdvLinks();
23806
23851
23852extern void AddAdvLink( const string & name );
23853
23900
23901extern void AddAdvLinkInput( int index, const string & parm_id, const string & var_name );
23902
23949
23950extern void AddAdvLinkOutput( int index, const string & parm_id, const string & var_name );
23951
24009
24010extern void DelAdvLinkInput( int index, const string & var_name );
24011
24069
24070extern void DelAdvLinkOutput( int index, const string & var_name );
24071
24130
24131extern std::vector< std::string > GetAdvLinkInputNames( int index );
24132
24191
24192extern std::vector< std::string > GetAdvLinkInputParms( int index );
24193
24252
24253extern std::vector< std::string > GetAdvLinkOutputNames( int index );
24254
24313
24314extern std::vector< std::string > GetAdvLinkOutputParms( int index );
24315
24379
24380extern bool ValidateAdvLinkParms( int index );
24381
24427
24428extern void SetAdvLinkCode( int index, const string & code );
24429
24483
24484extern std::string GetAdvLinkCode( int index );
24485
24542
24543extern void SearchReplaceAdvLinkCode( int index, const string & from, const string & to );
24544
24604
24605extern bool BuildAdvLinkScript( int index );
24606
24607
24608} // End vsp namespace
24609
24610#endif // !defined(VSPAPI__INCLUDED_)
Definition Vec3d.h:235
bool CheckForVSPAERO(const std::string &path)
bool CheckForVSPHelp(const std::string &path)
int GetVSPVersionChange()
std::string GetVSPVersion()
int GetVSPVersionMinor()
bool SetVSPHelpPath(const std::string &path)
std::string GetVSPHelpPath()
bool SetVSPAEROPath(const std::string &path)
std::string GetVSPExePath()
std::string GetVSPAEROPath()
int GetVSPVersionMajor()
void VSPRenew()
void VSPCheckSetup()
std::vector< std::string > GetAnalysisInputNames(const std::string &analysis)
const std::vector< int > & GetIntAnalysisInput(const std::string &analysis, const std::string &name, int index=0)
void SetIntAnalysisInput(const std::string &analysis, const std::string &name, const std::vector< int > &indata, int index=0)
void PrintAnalysisDocs(const std::string &analysis_name)
std::string ExecAnalysis(const std::string &analysis)
int GetNumAnalysis()
std::vector< std::string > ListAnalysis()
void SetVec3dAnalysisInput(const std::string &analysis, const std::string &name, const std::vector< vec3d > &indata, int index=0)
void SetStringAnalysisInput(const std::string &analysis, const std::string &name, const std::vector< std::string > &indata, int index=0)
void PrintAnalysisInputs(const std::string &analysis_name)
int GetAnalysisInputType(const std::string &analysis, const std::string &name)
void SetAnalysisInputDefaults(const std::string &analysis)
const std::vector< double > & GetDoubleAnalysisInput(const std::string &analysis, const std::string &name, int index=0)
std::string GetAnalysisDoc(const std::string &analysis)
const std::vector< vec3d > & GetVec3dAnalysisInput(const std::string &analysis, const std::string &name, int index=0)
void SetDoubleAnalysisInput(const std::string &analysis, const std::string &name, const std::vector< double > &indata, int index=0)
std::string GetAnalysisInputDoc(const std::string &analysis, const std::string &name)
const std::vector< std::string > & GetStringAnalysisInput(const std::string &analysis, const std::string &name, int index=0)
int GetNumAnalysisInputData(const std::string &analysis, const std::string &name)
vector< string > GetAttributeStringVal(const string &attrID)
string GetAttributeID(const string &collID, const string &attributeName, int index)
string GetAttributeName(const string &attrID)
vector< double > GetAttributeDoubleVal(const string &attrID)
void SetAttributeParmID(const string &attrID, const string &value)
void SetAttributeBool(const string &attrID, bool value)
void SetAttributeVec3d(const string &attrID, const vector< vec3d > value)
vector< string > FindAttributedObjects()
string AddAttributeInt(const string &collID, const string &attributeName, const int value)
string AddAttributeString(const string &collID, const string &attributeName, const string &value)
vector< int > GetAttributeIntVal(const string &attrID)
vector< vector< double > > GetAttributeDoubleMatrixVal(const string &attrID)
void DeleteAttribute(const string &attrID)
void SetAttributeDouble(const string &attrID, double value)
vector< string > FindAllAttributes()
string AddAttributeDouble(const string &collID, const string &attributeName, const double value)
vector< string > FindAttributeNamesInCollection(const string &collID)
string AddAttributeIntMatrix(const string &collID, const string &attributeName, const vector< vector< int > > &value)
void SetAttributeName(const string &attrID, const string &name)
vector< string > GetAttributeParmID(const string &attrID)
vector< vec3d > GetAttributeVec3dVal(const string &attrID)
vector< string > FindAttributesByName(const string &search_str)
string GetGeomSetCollection(const int &index)
vector< int > GetAttributeBoolVal(const string &attrID)
string SummarizeAttributesAsTree()
string GetObjectName(const string &attachID)
int CopyAttribute(const string &attrID)
string GetAttributeTypeName(const string &attrID)
string GetChildCollection(const string &attachID)
string SummarizeAttributes()
void CutAttribute(const string &attrID)
string GetObjectParent(const string &id)
void SetAttributeString(const string &attrID, const string &value)
void SetAttributeDoubleMatrix(const string &attrID, const vector< vector< double > > value)
string AddAttributeGroup(const string &collID, const string &attributeName)
vector< string > FindAttributesInCollection(const string &collID)
vector< double > GetAttributeParmVal(const string &attrID)
string AddAttributeParm(const string &collID, const string &attributeName, const string &parmID)
void SetAttributeIntMatrix(const string &attrID, const vector< vector< int > > value)
vector< vector< int > > GetAttributeIntMatrixVal(const string &attrID)
vector< string > PasteAttribute(const string &coll_id)
int GetAttributeType(const string &attrID)
vector< string > GetAttributeParmName(const string &attrID)
string AddAttributeBool(const string &collID, const string &attributeName, bool value)
string AddAttributeDoubleMatrix(const string &collID, const string &attributeName, const vector< vector< double > > &value)
string GetObjectTypeName(const string &attachID)
string AddAttributeVec3d(const string &collID, const string &attributeName, const vector< vec3d > &value)
string FindAttributeByName(const string &search_str, int index)
string GetAttributeDoc(const string &attrID)
string FindAttributeInCollection(const string &obj_id, const string &search_str, int index)
void SetAttributeDoc(const string &attrID, const string &doc)
void SetAttributeInt(const string &attrID, int value)
int GetObjectType(const string &attachID)
void SetBORAirfoilUpperPnts(const std::string &bor_id, const std::vector< vec3d > &up_pnt_vec)
void ReadBORFileAirfoil(const std::string &bor_id, const std::string &file_name)
void FitBORAfCST(const std::string &bor_id, int deg)
std::vector< double > GetBORLowerCSTCoefs(const std::string &bor_id)
vec3d ComputeBORXSecPnt(const std::string &bor_id, double fract)
std::vector< vec3d > GetBORAirfoilLowerPnts(const std::string &bor_id)
void SetBORXSecPnts(const std::string &bor_id, std::vector< vec3d > &pnt_vec)
void PromoteBORCSTUpper(const std::string &bor_id)
void SetBORUpperCST(const std::string &bor_id, int deg, const std::vector< double > &coefs)
void SetBORLowerCST(const std::string &bor_id, int deg, const std::vector< double > &coefs)
void ChangeBORXSecShape(const string &bor_id, int type)
vec3d ComputeBORXSecTan(const std::string &bor_id, double fract)
int GetBORUpperCSTDegree(const std::string &bor_id)
void DemoteBORCSTLower(const std::string &bor_id)
void PromoteBORCSTLower(const std::string &bor_id)
int GetBORXSecShape(const string &bor_id)
std::vector< double > GetBORUpperCSTCoefs(const std::string &bor_id)
std::vector< vec3d > ReadBORFileXSec(const std::string &bor_id, const std::string &file_name)
std::vector< vec3d > GetBORAirfoilUpperPnts(const std::string &bor_id)
void DemoteBORCSTUpper(const std::string &bor_id)
int GetBORLowerCSTDegree(const std::string &bor_id)
void SetBORAirfoilPnts(const std::string &bor_id, const std::vector< vec3d > &up_pnt_vec, const std::vector< vec3d > &low_pnt_vec)
void SetBORAirfoilLowerPnts(const std::string &bor_id, const std::vector< vec3d > &low_pnt_vec)
void SetBackground3DRelativePath(const string &id, const string &fname)
void ShowAllBackground3Ds()
int GetNumBackground3Ds()
string AddBackground3D()
vector< string > GetAllBackground3DAbsolutePaths()
vector< string > GetAllBackground3Ds()
string GetBackground3DRelativePath(const string &id)
void SetBackground3DAbsolutePath(const string &id, const string &fname)
void DelBackground3D(const string &id)
vector< string > GetAllBackground3DRelativePaths()
void DelAllBackground3Ds()
string GetBackground3DAbsolutePath(const string &id)
void HideAllBackground3Ds()
void AddCFDSource(int type, const std::string &geom_id, int surf_index, double l1, double r1, double u1, double w1, double l2=0, double r2=0, double u2=0, double w2=0)
void DeleteAllCFDSources()
void ComputeCFDMesh(int set, int degenset, int file_export_types)
void SetCFDWakeFlag(const std::string &geom_id, bool flag)
void AddDefaultSources()
void SetCFDMeshVal(int type, double val)
void SetComputationFileName(int file_type, const std::string &file_name)
void AddSelectedToCSGroup(const vector< int > &selected, int CSGroupIndex)
void SetVSPAEROControlGroupName(const string &name, int CSGroupIndex)
std::vector< std::string > GetActiveCSNameVec(int CSGroupIndex)
void RemoveSelectedFromCSGroup(const vector< int > &selected, int CSGroupIndex)
void AddAllToVSPAEROControlSurfaceGroup(int CSGroupIndex)
std::vector< std::string > GetAvailableCSNameVec(int CSGroupIndex)
int CreateVSPAEROControlSurfaceGroup()
int GetNumControlSurfaceGroups()
std::string GetVSPAEROControlGroupName(int CSGroupIndex)
std::vector< std::string > GetCompleteCSNameVec()
void RemoveAllFromVSPAEROControlSurfaceGroup(int CSGroupIndex)
void AutoGroupVSPAEROControlSurfaces()
std::string ComputeCompGeom(int set, bool half_mesh, int file_export_types)
std::string ComputeMassProps(int set, int num_slices, int idir)
std::string ComputePlaneSlice(int set, int num_slices, const vec3d &norm, bool auto_bnd, double start_bnd=0, double end_bnd=0, bool measureduct=false)
void ComputeDegenGeom(int set, int file_export_types)
void WriteDESFile(const std::string &file_name)
int GetNumDesignVars()
void AddDesignVar(const std::string &parm_id, int type)
void DeleteAllDesignVars()
void ReadApplyXDDMFile(const std::string &file_name)
void ReadApplyDESFile(const std::string &file_name)
void WriteXDDMFile(const std::string &file_name)
std::string GetDesignVar(int index)
int GetDesignVarType(int index)
void MoveEditXSecPnt(const std::string &xsec_id, const int &indx, const vec3d &new_pnt)
void EditXSecDelPnt(const std::string &xsec_id, const int &indx)
void EditXSecConvertTo(const std::string &xsec_id, const int &newtype)
std::vector< bool > GetEditXSecFixedUVec(const std::string &xsec_id)
void ConvertXSecToEdit(const std::string &geom_id, const int &indx=0)
void SetEditXSecFixedUVec(const std::string &xsec_id, std::vector< bool > fixed_u_vec)
std::vector< vec3d > GetEditXSecCtrlVec(const std::string &xsec_id, bool non_dimensional=true)
void SetEditXSecPnts(const std::string &xsec_id, const std::vector< double > &u_vec, const std::vector< vec3d > &control_pts, const std::vector< double > &r_vec)
int EditXSecSplit01(const std::string &xsec_id, const double &u)
std::vector< double > GetEditXSecUVec(const std::string &xsec_id)
void EditXSecInitShape(const std::string &xsec_id)
void ReparameterizeEditXSec(const std::string &xsec_id)
@ SET_NONE
@ SET_ALL
std::string GetFeaPartID(const std::string &fea_struct_id, int fea_part_index)
std::string GetFeaStructName(const std::string &geom_id, int fea_struct_ind)
std::vector< std::string > GetFeaSubSurfIDVec(const std::string &fea_struct_id)
void DeleteFeaPart(const std::string &geom_id, int fea_struct_ind, const std::string &part_id)
std::vector< std::string > GetFeaStructIDVec()
void DeleteFeaSubSurf(const std::string &geom_id, int fea_struct_ind, const std::string &ss_id)
int GetFeaSubSurfIndex(const string &ss_id)
int GetFeaPartType(const std::string &part_id)
int NumFeaParts(const std::string &fea_struct_id)
int NumFeaSubSurfs(const std::string &fea_struct_id)
void SetFeaMeshStructIndex(int struct_index)
void SetFeaMeshVal(const std::string &geom_id, int fea_struct_ind, int type, double val)
std::string AddFeaBC(const string &fea_struct_id, int type=-1)
void DeleteFeaStruct(const std::string &geom_id, int fea_struct_ind)
int GetFeaStructIndex(const std::string &struct_id)
void SetFeaSubSurfName(const std::string &subsurf_id, const std::string &name)
std::vector< std::string > GetFeaPartIDVec(const std::string &fea_struct_id)
std::string GetFeaStructParentGeomID(const std::string &struct_id)
void SetFeaPartName(const std::string &part_id, const std::string &name)
void SetFeaStructName(const std::string &geom_id, int fea_struct_ind, const std::string &name)
void ComputeFeaMesh(const std::string &geom_id, int fea_struct_ind, int file_type)
std::string GetFeaPartName(const std::string &part_id)
std::string GetFeaPartPerpendicularSparID(const std::string &part_id)
std::string AddFeaSubSurf(const std::string &geom_id, int fea_struct_ind, int type)
std::vector< std::string > GetFeaBCIDVec(const string &fea_struct_id)
int NumFeaStructures()
std::string AddFeaProperty(int property_type=0)
void SetFeaMeshFileName(const std::string &geom_id, int fea_struct_ind, int file_type, const string &file_name)
void SetFeaPartPerpendicularSparID(const std::string &part_id, const std::string &perpendicular_spar_id)
void DelFeaBC(const string &fea_struct_id, const std::string &bc_id)
std::string AddFeaMaterial()
std::string AddFeaPart(const std::string &geom_id, int fea_struct_ind, int type)
int NumFeaBCs(const string &fea_struct_id)
std::string GetFeaSubSurfName(const std::string &subsurf_id)
int AddFeaStruct(const std::string &geom_id, bool init_skin=true, int surfindex=0)
std::string GetFeaStructID(const std::string &geom_id, int fea_struct_ind)
void ReadVSPFile(const std::string &file_name)
void SetVSP3FileName(const std::string &file_name)
void SetBEMPropID(const string &prop_id)
std::string ImportFile(const std::string &file_name, int file_type, const std::string &parent)
void WriteVSPFile(const std::string &file_name, int set=SET_ALL)
void InsertVSPFile(const std::string &file_name, const std::string &parent_geom_id)
std::string ExportFile(const std::string &file_name, int thick_set, int file_type, int subsFlag=1, int thin_set=vsp::SET_NONE, bool useMode=false, const string &modeID="")
void DeleteGeom(const std::string &geom_id)
std::string GetGeomName(const std::string &geom_id)
std::vector< std::string > GetGeomTypes()
vec3d GetGeomBBoxMax(const std::string &geom_id, int main_surf_ind=0, bool ref_frame_is_absolute=true)
std::vector< std::string > GetGeomParmIDs(const std::string &geom_id)
int GetGeomVSPSurfType(const std::string &geom_id, int main_surf_ind=0)
std::vector< std::string > FindGeomsWithName(const std::string &name)
std::string FindGeom(const std::string &name, int index)
int GetTotalNumSurfs(const std::string &geom_id)
void UpdateGeom(const std::string &geom_id)
std::string GetGeomParent(const std::string &geom_id)
void SetDriverGroup(const std::string &geom_id, int section_index, int driver_0, int driver_1=-1, int driver_2=-1)
int GetNumMainSurfs(const std::string &geom_id)
std::vector< std::string > PasteGeomClipboard(const std::string &parent=std::string())
void SetGeomParent(const std::string &geom_id, const std::string &parent_id)
void CutGeomToClipboard(const std::string &geom_id)
std::vector< std::string > FindGeoms()
void SetGeomName(const std::string &geom_id, const std::string &name)
std::vector< std::string > GetGeomChildren(const std::string &geom_id)
std::string AddGeom(const std::string &type, const std::string &parent=std::string())
std::string GetGeomTypeName(const std::string &geom_id)
vec3d GetGeomBBoxMin(const std::string &geom_id, int main_surf_ind=0, bool ref_frame_is_absolute=true)
void CopyGeomToClipboard(const std::string &geom_id)
int GetGeomVSPSurfCfdType(const std::string &geom_id, int main_surf_ind=0)
void DeleteGeomVec(const std::vector< std::string > &del_vec)
void SplitWingXSec(const string &wing_id, int section_index)
void TranslateSet(int set_index, const vec3d &translation_vec)
void TransformSet(int set_index, const vec3d &translation_vec, double x_rot_deg, double y_rot_deg, double z_rot_deg, double scale, bool scale_translations_flag)
void ScaleSet(int set_index, double scale)
void RotateSet(int set_index, double x_rot_deg, double y_rot_deg, double z_rot_deg)
string AddProbe(const string &geomid, int surfindx, double u, double w, const string &name)
void DeleteAllRulers()
void DeleteAllProbes()
void DelProbe(const string &id)
string AddRuler(const string &startgeomid, int startsurfindx, double startu, double startw, const string &endgeomid, int endsurfindx, double endu, double endw, const string &name)
std::vector< string > GetAllProbes()
std::vector< string > GetAllRulers()
void DelRuler(const string &id)
int GetNumModes()
void ApplyModeSettings(const string &mid)
void RemoveAllGroupSettings(const string &mid)
vector< string > ModeGetAllSettings(const string &mid)
void DelMode(const string &mid)
void ShowOnlyMode(const string &mid)
vector< string > GetAllModes()
void ModeAddGroupSetting(const string &mid, const string &gid, const string &sid)
string ModeGetSetting(const string &mid, int indx)
string CreateAndAddMode(const string &name, int normal_set, int degen_set)
void DelAllModes()
vector< string > ModeGetAllGroups(const string &mid)
string ModeGetGroup(const string &mid, int indx)
void RemoveGroupSetting(const string &mid, int indx)
void SetPCurve(const std::string &geom_id, const int &pcurveid, const std::vector< double > &tvec, const std::vector< double > &valvec, const int &newtype)
std::vector< double > PCurveGetValVec(const std::string &geom_id, const int &pcurveid)
std::vector< double > PCurveGetTVec(const std::string &geom_id, const int &pcurveid)
void ApproximateAllPropellerPCurves(const std::string &geom_id)
void PCurveDeletePt(const std::string &geom_id, const int &pcurveid, const int &indx)
void ResetPropellerThicknessCurve(const std::string &geom_id)
int PCurveSplit(const std::string &geom_id, const int &pcurveid, const double &tsplit)
int PCurveGetType(const std::string &geom_id, const int &pcurveid)
void PCurveConvertTo(const std::string &geom_id, const int &pcurveid, const int &newtype)
void WriteBodyFFCSVFile(const std::string &file_name)
void AddExcrescence(const std::string &excresName, const int &excresType, const double &excresVal)
void UpdateParasiteDrag()
void WriteCfEqnCSVFile(const std::string &file_name)
void WritePartialCfMethodCSVFile(const std::string &file_name)
void WriteAtmosphereCSVFile(const std::string &file_name, const int &atmos_type)
void WriteWingFFCSVFile(const std::string &file_name)
void CalcAtmosphere(const double &alt, const double &delta_temp, const int &atmos_type, double &temp, double &pres, double &pres_ratio, double &rho_ratio)
void DeleteExcrescence(const int &index)
std::string GetVehicleID()
std::string GetUserParmContainer()
std::vector< std::string > FindContainerGroupNames(const std::string &parm_container_id)
std::vector< std::string > GetAllUserParms()
void DeleteAllUserParm()
void DeleteUserParm(const std::string &id)
std::string FindContainer(const std::string &name, int index)
std::vector< std::string > FindContainerParmIDs(const std::string &parm_container_id)
int GetNumUserParms()
int GetNumPredefinedUserParms()
std::vector< std::string > FindContainers()
std::vector< std::string > FindContainersWithName(const std::string &name)
std::string GetContainerName(const std::string &parm_container_id)
string AddUserParm(int type, const string &name, const string &group)
std::string FindParm(const std::string &parm_container_id, const std::string &parm_name, const std::string &group_name)
void SetParmUpperLimit(const std::string &parm_id, double val)
double GetParmLowerLimit(const std::string &parm_id)
std::string GetParmName(const std::string &parm_id)
int GetParmType(const std::string &parm_id)
bool ValidParm(const std::string &id)
std::string GetParmDescript(const std::string &parm_id)
int GetIntParmVal(const std::string &parm_id)
double SetParmVal(const std::string &parm_id, double val)
double SetParmValUpdate(const std::string &parm_id, double val)
double GetParmVal(const std::string &parm_id)
std::string GetParm(const std::string &geom_id, const std::string &name, const std::string &group)
void SetParmDescript(const std::string &parm_id, const std::string &desc)
double GetParmUpperLimit(const std::string &parm_id)
void SetParmLowerLimit(const std::string &parm_id, double val)
double SetParmValLimits(const std::string &parm_id, double val, double lower_limit, double upper_limit)
std::string GetParmDisplayGroupName(const std::string &parm_id)
bool GetBoolParmVal(const std::string &parm_id)
std::string GetParmGroupName(const std::string &parm_id)
std::string GetParmContainer(const std::string &parm_id)
int GetNumResults(const std::string &name)
int GetNumData(const std::string &results_id, const std::string &data_name)
void PrintResults(const std::string &results_id)
const std::vector< vec3d > & GetVec3dResults(const std::string &id, const std::string &name, int index=0)
std::vector< std::string > GetAllResultsNames()
void DeleteResult(const std::string &id)
std::string FindLatestResultsID(const std::string &name)
const std::vector< int > & GetIntResults(const std::string &id, const std::string &name, int index=0)
std::string GetResultsName(const std::string &results_id)
const std::vector< std::vector< double > > & GetDoubleMatResults(const std::string &id, const std::string &name, int index=0)
const std::vector< double > & GetDoubleResults(const std::string &id, const std::string &name, int index=0)
int GetResultsType(const std::string &results_id, const std::string &data_name)
std::string GetResultsSetDoc(const std::string &results_id)
std::vector< std::string > GetAllDataNames(const std::string &results_id)
void WriteResultsCSVFile(const std::string &id, const std::string &file_name)
std::string FindResultsID(const std::string &name, int index=0)
void DeleteAllResults()
void WriteTestResults()
void PrintResultsDocs(const std::string &results_id)
std::string CreateGeomResults(const std::string &geom_id, const std::string &name)
const std::vector< std::string > & GetStringResults(const std::string &id, const std::string &name, int index=0)
void CopyPasteSet(int copyIndex, int pasteIndex)
void SetSetName(int index, const std::string &name)
bool GetSetFlag(const std::string &geom_id, int set_index)
std::vector< std::string > GetGeomSet(const std::string &name)
int GetSetIndex(const std::string &name)
std::vector< std::string > GetGeomSetAtIndex(int index)
int GetNumSets()
void SetSetFlag(const std::string &geom_id, int set_index, bool flag)
std::string GetSetName(int index)
double SnapParm(const std::string &parm_id, double target_min_dist, bool inc_flag, int set=SET_ALL, bool useMode=false, const string &modeID=string())
double ComputeMinClearanceDistance(const std::string &geom_id, int set=SET_ALL, bool useMode=false, const string &modeID=string())
int GetNumSubSurf(const std::string &geom_id)
std::vector< std::string > GetSubSurfIDVec(const std::string &geom_id)
std::string GetSubSurfName(const std::string &geom_id, const std::string &sub_id)
std::vector< std::string > GetAllSubSurfIDs()
std::string AddSubSurf(const std::string &geom_id, int type, int surfindex=0)
void DeleteSubSurf(const std::string &geom_id, const std::string &sub_id)
int GetSubSurfType(const std::string &sub_id)
void SetSubSurfName(const std::string &geom_id, const std::string &sub_id, const std::string &name)
std::vector< std::string > GetSubSurfParmIDs(const std::string &sub_id)
int GetSubSurfIndex(const std::string &sub_id)
std::string GetSubSurf(const std::string &geom_id, int index)
void CompVecCurvature01(const std::string &geom_id, const int &surf_indx, const std::vector< double > &us, const std::vector< double > &ws, std::vector< double > &k1_out_vec, std::vector< double > &k2_out_vec, std::vector< double > &ka_out_vec, std::vector< double > &kg_out_vec)
vec3d CompTanU01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w)
void AxisProjVecPnt01(const std::string &geom_id, const int &surf_indx, const int &iaxis, const std::vector< vec3d > &pts, std::vector< double > &u_out_vec, std::vector< double > &w_out_vec, std::vector< double > &d_out_vec)
double ProjPnt01(const std::string &geom_id, const int &surf_indx, const vec3d &pt, double &u_out, double &w_out)
vec3d CompPntRST(const std::string &geom_id, const int &surf_indx, const double &r, const double &s, const double &t)
void ConvertLMNtoRST(const std::string &geom_id, const int &surf_indx, const double &l, const double &m, const double &n, double &r_out, double &s_out, double &t_out)
void ProjVecPnt01Guess(const std::string &geom_id, const int &surf_indx, const std::vector< vec3d > &pts, const std::vector< double > &u0s, const std::vector< double > &w0s, std::vector< double > &u_out_vec, std::vector< double > &w_out_vec, std::vector< double > &d_out_vec)
void ProjVecPnt01(const std::string &geom_id, const int &surf_indx, const std::vector< vec3d > &pts, std::vector< double > &u_out_vec, std::vector< double > &w_out_vec, std::vector< double > &d_out_vec)
bool InsideSurf(const std::string &geom_id, const int &surf_indx, const vec3d &pt)
vec3d CompPnt01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w)
void FindRSTVec(const std::string &geom_id, const int &surf_indx, const std::vector< vec3d > &pts, std::vector< double > &r_out_vec, std::vector< double > &s_out_vec, std::vector< double > &t_out_vec, std::vector< double > &d_out_vec)
double ProjPnt01Guess(const std::string &geom_id, const int &surf_indx, const vec3d &pt, const double &u0, const double &w0, double &u_out, double &w_out)
void ConvertLMNtoRSTVec(const std::string &geom_id, const int &surf_indx, const std::vector< double > &l_vec, const std::vector< double > &m_vec, const std::vector< double > &n_vec, std::vector< double > &r_out_vec, std::vector< double > &s_out_vec, std::vector< double > &t_out_vec)
void ConvertRSTtoLMN(const std::string &geom_id, const int &surf_indx, const double &r, const double &s, const double &t, double &l_out, double &m_out, double &n_out)
vec3d CompTanW01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w)
void AxisProjVecPnt01Guess(const std::string &geom_id, const int &surf_indx, const int &iaxis, const std::vector< vec3d > &pts, const std::vector< double > &u0s, const std::vector< double > &w0s, std::vector< double > &u_out_vec, std::vector< double > &w_out_vec, std::vector< double > &d_out_vec)
void ConvertRSTtoLMNVec(const std::string &geom_id, const int &surf_indx, const std::vector< double > &r_vec, const std::vector< double > &s_vec, const std::vector< double > &t_vec, std::vector< double > &l_out_vec, std::vector< double > &m_out_vec, std::vector< double > &n_out_vec)
double ProjPnt01I(const std::string &geom_id, const vec3d &pt, int &surf_indx_out, double &u_out, double &w_out)
void FindRSTVecGuess(const std::string &geom_id, const int &surf_indx, const std::vector< vec3d > &pts, const std::vector< double > &r0s, const std::vector< double > &s0s, const std::vector< double > &t0s, std::vector< double > &r_out_vec, std::vector< double > &s_out_vec, std::vector< double > &t_out_vec, std::vector< double > &d_out_vec)
void ConvertRtoL(const std::string &geom_id, const int &surf_indx, const double &r, double &l_out)
std::vector< bool > VecInsideSurf(const std::string &geom_id, const int &surf_indx, const std::vector< vec3d > &pts)
std::vector< vec3d > CompVecPntRST(const std::string &geom_id, const int &surf_indx, const std::vector< double > &r_in_vec, const std::vector< double > &s_in_vec, const std::vector< double > &t_in_vec)
double AxisProjPnt01Guess(const std::string &geom_id, const int &surf_indx, const int &iaxis, const vec3d &pt, const double &u0, const double &w0, double &u_out, double &w_out)
double AxisProjPnt01I(const std::string &geom_id, const int &iaxis, const vec3d &pt, int &surf_indx_out, double &u_out, double &w_out)
void CompCurvature01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w, double &k1_out, double &k2_out, double &ka_out, double &kg_out)
void ConvertLtoR(const std::string &geom_id, const int &surf_indx, const double &l, double &r_out)
void ConvertUtoEta(const std::string &geom_id, const double &u, double &eta_out)
double FindRST(const std::string &geom_id, const int &surf_indx, const vec3d &pt, double &r_out, double &s_out, double &t_out)
vec3d CompNorm01(const std::string &geom_id, const int &surf_indx, const double &u, const double &w)
void ConvertEtatoU(const std::string &geom_id, const double &eta, double &u_out)
std::vector< vec3d > CompVecNorm01(const std::string &geom_id, const int &surf_indx, const std::vector< double > &us, const std::vector< double > &ws)
std::vector< vec3d > CompVecPnt01(const std::string &geom_id, const int &surf_indx, const std::vector< double > &u_in_vec, const std::vector< double > &w_in_vec)
void GetUWTess01(const std::string &geom_id, const int &surf_indx, std::vector< double > &u_out_vec, std::vector< double > &w_out_vec)
double FindRSTGuess(const std::string &geom_id, const int &surf_indx, const vec3d &pt, const double &r0, const double &s0, const double &t0, double &r_out, double &s_out, double &t_out)
double AxisProjPnt01(const std::string &geom_id, const int &surf_indx, const int &iaxis, const vec3d &pt, double &u_out, double &w_out)
int GetNumUnsteadyGroups()
std::string GetUnsteadyGroupName(int group_index)
int GetNumUnsteadyRotorGroups()
std::vector< int > GetUnsteadyGroupSurfIndexes(int group_index)
std::vector< std::string > GetUnsteadyGroupCompIDs(int group_index)
int GetNumActuatorDisks()
std::string FindActuatorDisk(int disk_index)
std::string FindUnsteadyGroup(int group_index)
string GetVSPAERORefWingID()
string SetVSPAERORefWingID(const std::string &geom_id)
string AddVarPresetSetting(const std::string &group_id, const std::string &setting_name)
void SetGroupName(const std::string &group_id, const std::string &group_name)
double GetVarPresetParmVal(const std::string &group_id, const std::string &setting_id, const std::string &parm_id)
void SetSettingName(const std::string &setting_id, const std::string &setting_name)
std::vector< double > GetVarPresetParmVals(const std::string &setting_id)
std::vector< std::string > GetVarPresetGroups()
void DeleteVarPresetGroup(const std::string &group_id)
void SetVarPresetParmVal(const std::string &group_id, const std::string &setting_id, const std::string &parm_id, double parm_val)
std::string GetSettingName(const std::string &setting_id)
void ApplyVarPresetSetting(const std::string &group_id, const std::string &setting_id)
std::vector< std::string > GetVarPresetParmIDs(const std::string &group_id)
void SetVarPresetParmVals(const std::string &setting_id, const std::vector< double > &parm_vals)
void AddVarPresetParm(const std::string &group_id, const std::string &parm_id)
void DeleteVarPresetParm(const std::string &group_id, const std::string &parm_id)
string AddVarPresetGroup(const std::string &group_name)
std::string GetGroupName(const std::string &group_id)
void SaveVarPresetParmVals(const std::string &group_id, const std::string &setting_id)
std::vector< std::string > GetVarPresetSettings(const std::string &group_id)
void DeleteVarPresetSetting(const std::string &group_id, const std::string &setting_id)
void VSPExit(int error_code)
int GetAndResetUpdateCount()
void Update(bool update_managers=true)
void ClearVSPModel()
std::string GetVSPFileName()
void VSPCrash(int crash_type)
void ResetViews()
void StopGUI()
void PopupMsg(const std::string &msg)
bool IsGUIBuild()
bool IsEventLoopRunning()
void SetViewAxis(bool vaxis)
void SetGeomMaterialName(const string &geom_id, const string &name)
void SetGeomDisplayType(const string &geom_id, int type)
void SetShowBorders(bool brdr)
vector< string > GetMaterialNames()
void Lock()
void SetGUIElementDisable(int e, bool state)
void SetWindowLayout(int r, int c)
void SetAllViews(int view)
void SetView(int viewport, int view)
void InitGUI()
void SetGeomScreenDisable(int s, bool state)
void SetGeomDrawType(const string &geom_id, int type)
void UpdateGUI()
void Unlock()
void SetGeomWireColor(const string &geom_id, int r, int g, int b)
void StartGUI()
void FitAllViews()
void SetBackground(double r, double g, double b)
void DisableStopGUIMenuItem()
void ScreenGrab(const string &fname, int w, int h, bool transparentBG, bool autocrop=false)
void EnableStopGUIMenuItem()
void SetGUIScreenDisable(int s, bool state)
void AddMaterial(const string &name, const vec3d &ambient, const vec3d &diffuse, const vec3d &specular, const vec3d &emissive, const double &alpha, const double &shininess)
void InsertXSec(const std::string &geom_id, int index, int type)
std::vector< vec3d > ReadFileXSec(const std::string &xsec_id, const std::string &file_name)
void SetXSecContinuity(const std::string &xsec_id, int cx)
int GetLowerCSTDegree(const std::string &xsec_id)
void SetXSecWidthHeight(const std::string &xsec_id, double w, double h)
void SetXSecPnts(const std::string &xsec_id, std::vector< vec3d > &pnt_vec)
void DemoteCSTUpper(const std::string &xsec_id)
std::vector< vec3d > GetAirfoilLowerPnts(const std::string &xsec_id)
void SetXSecWidth(const std::string &xsec_id, double w)
double GetXSecWidth(const std::string &xsec_id)
std::vector< std::string > GetXSecParmIDs(const std::string &xsec_id)
std::vector< vec3d > GetFeatureLinePnts(const string &geom_id)
void SetXSecHeight(const std::string &xsec_id, double h)
void SetLowerCST(const std::string &xsec_id, int deg, const std::vector< double > &coefs)
void PasteXSec(const std::string &geom_id, int index)
std::vector< double > GetUpperCSTCoefs(const std::string &xsec_id)
vec3d ComputeXSecTan(const std::string &xsec_id, double fract)
void SetAirfoilPnts(const std::string &xsec_id, const std::vector< vec3d > &up_pnt_vec, const std::vector< vec3d > &low_pnt_vec)
void SetXSecCurveAlias(const string &id, const string &alias)
string GetXSecCurveAlias(const string &id)
std::string GetXSecParm(const std::string &xsec_id, const std::string &name)
std::vector< vec3d > GetAirfoilCoordinates(const std::string &geom_id, const double &foilsurf_u)
void PromoteCSTUpper(const std::string &xsec_id)
void PromoteCSTLower(const std::string &xsec_id)
std::vector< double > GetVKTAirfoilCpDist(const double &alpha, const double &epsilon, const double &kappa, const double &tau, const std::vector< vec3d > &xyz_data)
void DemoteCSTLower(const std::string &xsec_id)
void FitAfCST(const std::string &xsec_surf_id, int xsec_index, int deg)
void CopyXSec(const std::string &geom_id, int index)
vec3d ComputeXSecPnt(const std::string &xsec_id, double fract)
void SetXSecAlias(const string &id, const string &alias)
std::vector< double > GetLowerCSTCoefs(const std::string &xsec_id)
void SetXSecTanStrengths(const std::string &xsec_id, int side, double top, double right, double bottom, double left)
void ReadFileAirfoil(const std::string &xsec_id, const std::string &file_name)
string GetXSecAlias(const string &id)
void SetXSecTanAngles(const std::string &xsec_id, int side, double top, double right, double bottom, double left)
std::vector< vec3d > GetHersheyBarDragDist(const int &npts, const double &alpha, const double &Vinf, const double &span, bool full_span_flag=false)
void ResetXSecSkinParms(const std::string &xsec_id)
std::vector< vec3d > GetAirfoilUpperPnts(const std::string &xsec_id)
std::vector< vec3d > GetHersheyBarLiftDist(const int &npts, const double &alpha, const double &Vinf, const double &span, bool full_span_flag=false)
std::vector< vec3d > GetVKTAirfoilPnts(const int &npts, const double &alpha, const double &epsilon, const double &kappa, const double &tau)
std::vector< vec3d > GetEllipsoidSurfPnts(const vec3d &center, const vec3d &abc_rad, int u_npts=20, int w_npts=20)
void CutXSec(const std::string &geom_id, int index)
std::vector< double > GetEllipsoidCpDist(const std::vector< vec3d > &surf_pnt_vec, const vec3d &abc_rad, const vec3d &V_inf)
void SetAirfoilLowerPnts(const std::string &xsec_id, const std::vector< vec3d > &low_pnt_vec)
void SetAirfoilUpperPnts(const std::string &xsec_id, const std::vector< vec3d > &up_pnt_vec)
int GetXSecShape(const std::string &xsec_id)
void SetXSecTanSlews(const std::string &xsec_id, int side, double top, double right, double bottom, double left)
void WriteBezierAirfoil(const std::string &file_name, const std::string &geom_id, const double &foilsurf_u)
int GetUpperCSTDegree(const std::string &xsec_id)
void SetXSecCurvatures(const std::string &xsec_id, int side, double top, double right, double bottom, double left)
double GetXSecHeight(const std::string &xsec_id)
void WriteSeligAirfoil(const std::string &file_name, const std::string &geom_id, const double &foilsurf_u)
void SetUpperCST(const std::string &xsec_id, int deg, const std::vector< double > &coefs)
std::string GetXSecSurf(const std::string &geom_id, int index)
void SetXSecSurfGlobalXForm(const std::string &xsec_surf_id, const Matrix4d &mat)
std::string GetXSec(const std::string &xsec_surf_id, int xsec_index)
int GetNumXSecSurfs(const std::string &geom_id)
Matrix4d GetXSecSurfGlobalXForm(const std::string &xsec_surf_id)
int GetNumXSec(const std::string &xsec_surf_id)
void ChangeXSecShape(const std::string &xsec_surf_id, int xsec_index, int type)