ProgramFlow

../dox/ProgramFlow.dox

Startup
Workflow
Events
Errorhandling-Tests
Constants
Standards-Tolerences-Modelsize
Transformations
Source-EDitor
Interaction
cursorPosition
Views
ViewPlane
ConstructionPlane
DB-functions
Textures
Tesselate
CAD
NC
NC-Wcut
IGES
DXF
VRML
DL-OpenGL
DLLs
Plotten

DB-functions

ut_DB.c                                            (DB_)
ut_dbo.c   handle database-objects (typ, DB-index) (DBO_)
UTO_get_DB          get DB-data-struct from typ, DB-index
DB_get_PT,LN,VC,CI
DB_GetCurv,Sur,Sol
DB_GetObjGX         returns a ObjGX of a object stored in DB
UTO_obj_getp        returns data-struct from ObjGX

DB_GetObjGX
DB_GetPoint
DB_StorePoint
DB_QueryNxtInd
DB_GetDynInd

Constants

ut_const.h        Basic constants math.
ut_tol_const.h    Basic constants tolereances.
ut_geo_const.h    Basic constants geometry.

Transformations

see also ut_transform.c  (UTRA_)
see also ConstructionPlane
UTRA_m3_inirot     transformation from rotationaxis and angle 
UTRA_def__         define transformation
UTRA_app_pt        apply all defined Transformations to a point
UTRA_app_vc        apply all defined Transformations to a Vector
UTRA_app__ UTRA_app_oTab UTRA_app_obj

UTO_obj_apptra      apply Tra; creat new struct. in:Struct; preload trMat.
UTO_obj_tra         ruft UTO_stru_tra; in: oGX u Mat_4x3
UTO_stru_tra        apply Tra; generiert neue oGX; in: oGX u Mat_4x3
UTO_pt_tratra
UTO_pt_trarot

UT2D_pt_traptm2
UT2D_vc_travcm2
UT3D_pt_traptm3
UT3D_pt_rotptm3
UT3D_pt_traptm4
UT3D_vc_travcm3
UT3D_vc_travcm4

Standards-Tolerences-Modelsize

WC_ask_ModSiz        get APT_ModSiz
WC_Init_Modsiz       set APT_ModSiz
 WC_Init_Tol         deduct tolerances from APT_ModSiz   <<<<<<<<<<<<<<
UI_WinToler          window for setting tolerances ..
 GL_InitModelSize

Views

APT_work_PrgCmd          do "VIEW" source
GL_View_get              returns active viewData
GL_View_set              set viewData
GL_View_dump             dump viewData
UI_GR_view               save/restore viewData

ViewPlane

see also cursorPosition

GL_GetViewPos            compute cursorPosition in userCoords on GL_view_pln

// Viewplane (active displayplane with the GL-RotationCenterpoint GL_cen)
//   Always parall. to X-Y-Plane.
static Plane  GL_view_pln;

ConstructionPlane

see also Transformations
see also xa.c
Plane     WC_sur_act;    the ConstructionPlane; in xa.c
int       WC_sur_ind;    DB-Index of the ActiveConstrPlane; 0=none.
double    WC_sur_Z;      the active Z-Offset to the ConstructionPlane
char WC_ConstPl_Z[16];   displayed name_of_Constr.Plane; is "DZ" or "R20"

Mat_4x3   WC_sur_mat;            // TrMat of ActiveConstrPlane
Mat_4x3   WC_sur_imat;           // inverse TrMat of ActiveConstrPlane


Functions ConstrPlane:
DL_setRefSys
  NC_setRefsys
    GL_SetConstrPln
DL_GetTrInd
AP_ucs_to           translate point into active constructionplane (WCS -> UCS)
AP_ucs_from         get point from active constructionplane (UCS -> WCS)

UI_sur_act_CB1      interactive setting of ConstructionPlane
 GL_SetConstrPln    GL_constr_pln=(WC_sur_act+WC_sur_Z); write Label Z-Offset
 UI_Set_ConstPl_Z   write Label name_of_Constr.Plane
AP_Set_ConstPl_Z    write Label name_of_Constr.Plane
UI_suract_keyIn     mode=2: set & display WC_sur_Z
AP_Get_ConstPl_Z    gives ConstPLn as text or Z-vec
AP_Get_ConstPl_vz   give Z-vec of ConstructionPlane

Errorhandling-Tests

see also Messages / Direct-Messages
AP_errStat_get
AP_errStat_set      raise / reset error
AP_errStat_reset
AP_errText_set


AP_debug__          Alt shift x
AP_test__           Testfunction in core; activate by Ctl shift T
                    exit durch Ctl shift X

Startup

main           xa_main.c             nur via ":/main (" 
AP_work__                     work Startparameters
UI_win_main                   das MainWindow aufbauen
  UI_GR_WinInit               das OpenGL-Window aufbauen
 AP_defaults_write            nur beim ersten Start
 AP_Init0                     nur einmal - ganz am Beginn
 UI_menCB "new"
  AP_Init1
   DL_Init
   WC_Init_all
 ED_work_END
  ED_work_CurSet             ruecksetzen od. bis new ln abarbeiten ..
   ED_Run


OpenGL-Startup:            OpenGL-events: see Events
UI_win_main
  UI_Enter
  // winGR
  UI_GR_Init
    UI_GR_WinInit          set events for GL_widget
      UI_GR_DrawCreate     gtk_gl_area_new(attrlist)
  GL_InitInfo              glGetString(GL_RENDERER)..
  GL_config_test           glGetIntegerv (GL_DEPTH_BITS ..

UI_GR_Reshape              OpenGL-Window Expose-event
  UI_GR_GLInit
    GL_Init__
      GL_Init0
        GL_alloc__

Workflow

NC_Main.c   CommandInterpreter - main
UI_AP                         UserInterface; 
UI_menCB                      Callback f File/new ...
UI_butCB                      Callback fuer Menufuncs, Buttons, ...
  ED_work_END
   ED_work_CurSet
    ED_Run
     ED_Read_Line
     WC_Work__                subModel
     WC_Work1                 ========= HauptEntry in NC_Main.c ==========
      APT_work_def            DefinitionLine abarbeiten (decode, draw)
        APT_decode_obj        Typ und Index der Zielvariable bestimmen
        APT_decode_ausdr      Eingabezeile zerteilen (1. Decodierstufe)
          APT_decode_func     decode SIN() X() D() ANG() P() L() ..
            APT_decode_inp    2.Decodierstufe
        APT_store_obj         decode APT-object, store object.
          APT_decode_var
          APT_decode_pt 
          APT_decode_ln 
          APT_decode_ci       APT_DrawCirc
          APT_decode_ell
          APT_decode_pol
          APT_decode_bsp
          APT_decode_ccv
            AP_cont_nxt       Kontursucher ..
          APT_decode_pln1     Plane/Refsys
          APT_decode_pln2     Plane   R = PERP ..
          APT_decode_sbsp     decode b-spline-surf
          APT_decode_sur
            APT_decode_srv
            APT_decode_s_sph
            APT_decode_s_cyl
            APT_decode_s_con
          APT_decode_sol
            APT_decode_bsph   Sphere
            APT_decode_bcon   CONUS
            APT_decode_btor   TORUS
            APT_decode_btor   PRISM
          APT_trim_obj        LN|CI|CV = CUT ..
          DB_StoreCurv
        APT_Draw__
         DB_GetCurv
         APT_DrawCurv          APT_DrawCirc
          GL_DrawPoly2D         GR_DrawCirc
          GL_DrawPoly
         APT_DrawPln
         APT_DrawSur
          GR_DrawSur
           TSU_DrawSurT_
            TSU_DrawSurTRU     Ruled Surface
            TSU_DrawSurTRV     Revolved Surface
            TSU_DrawSurTS      ungetrimmte/ungelochte Planare Flaeche
            TSU_DrawSurTC      getrimmte/gelochte Complex-Flaeche (Typ_SURTPS)
            TSU_DrawSurTP      getrimmte/gelochte Planare Flaechen
             GL_DrawSur
              GL_Surf_Ini
              GL_Disp_sur
         APT_DrawSol
          GR_CreSol__
           GL_disp_prism
      APT_work_PrgCmd         Programming-Function (goto, call, WORK, if ...)
      APT_work_NCCmd          FROM TL ..
      APT_do_auxCmd           T1;G20;R0 ..
      APT_wcut_line           nur if (APT_workmode == Typ_nc_cut) ?
      APT_drill_line          nur if (APT_workmode == Typ_nc_cut) ?

Workflow CAD:

// activate new subMenu:
IE_cad_init2   // activate new mainMenu
IE_cad_init1   // activate new subMenu

// activate new inputField:
IE_cad_InpIn__

// receive Input from user:
IE_cad_sel1

// test content of all inputFields:
IE_cad_test1

// finish cad-object:
IE_cad_OK


UI_CB_hide                    Hide - Funktion
  DL_disp_set
UI_CB_view                    View - Funktion
  GA_hide__                   hidden-Elements-Tabelle bearbeiten

Events

UI_butSM                      S/M/DEL ein/aus
UI_EdButtonPress              Mousebuttons im EdWin.
UI_GR_ButtonPress             Mousebuttons im GrafWin (selection, indicate)
  UI_GR_Select1
    GL_sel_sel
    UI_GR_Select2             callback von GUI_Popup (Liste der sel.Obj)
     UI_GR_Select_work1       work GR_Sel_Filter 3-7
      UI_GR_Select_work2      work  hide,view,SM or call
       IE_cad_sel1            CAD-report sel.
       ED_add_Text            MAN
  UI_GR_view_set_Z
  UI_GR_Indicate
UI_GR_ButtonRelease           "button_release_event"
UI_EdKeyPress                 Keyboard - Press
UI_EdKeyRelease               Keyboard - Release
UI_GR_MotionNotify            mouse-movement "motion_notify_event"
OMN_CB_popup                  callback of popup-menu
UI_GR_GLInit                  gtk-"realize"
UI_GR_Redraw                  gtk-"draw"-Event
UI_GR_Destroy
UI_CursorWait UI_ChangeCursor UI_ResetCursor

OpenGL-Events:
UI_GR_Reshape                 configure_event
UI_GR_Draw                    visibility_notify_event        expose_event
UI_GR_Enter                   enter_notify_event

UI_GR_RECONFIG
UI_GR_idle_CB

Source-EDitor

xa_src.c     check, modify, convert source-objects (text)       SRC_
xa_ed_mem.c  ApplicSpecficFunctions APT-Textfunctions im Memory APED_
xa_ed.c      Neutral EditorFunctions (MAN, not Gtk-specific)    ED_
xa_cad_ed.c  CAD-GroupEditor                                    IE_ed1_
ut_txfil.c   Textfunctions im Memory                            UTF_
ut_gtk2ed.c  Gtk-EditorFunctions                                GUI_Ed_
ED_work_END                   Button END = alles abarbeiten

TX_Print                      ut_ui_TX.c
  TX_Write
    GUI_Tx_wri                ../gtk/ut_gtk2tx.c
      GUI_Tx_add

CAD

UI_cad                        Hauptmenue aufbauen
IE_cad_p_CB                   PointMenueEintrag selected ..
IE_activate                   nach Select obj: entspr. menu aktivieren.
 IE_decode_Ln                 Inputtzeile in (Typen, Worte) zerlegen
 IE_txt2par1                  decode textline -> subgroup (nach SM)
 IE_cad_sel1                  Selektion wird gemeldet, decodiert, eingearbeitet.
  IE_cad_test1                test ob alle Eingaben vorh;
                                ja:decode Felder, exec txt, activate OK.
 IE_cad_OK                    OK-Butt.pressed: clear Inputboxen,Zeile->Datei

Interaction

APT_decode_Activ
DB_StoreActiv
UI_menCB "Iact"    ckb_Iact
UI_GR_ButtonPress
 UI_GR_Select1
  DL_IactSelect
   DB_QueryActiv

ACT_ck_act

NC

APT_work_PrgCmd
 APT_wcut_ln1                 CUT P
 NC_up_Work_                  CUT S
 NC_up_Pock_                  POCK
 Pock_CUT_CIRC                CUT_CIR
 Pock_POCK_CIRC               POCK_CIR

NC-Wcut

UI_wcg__                      gesamtes Panel generieren
UI_wcg_init_                  erster Start
UI_wcg_CBcont                 Auswahl einer Kontur
 UI_wcg_InitBuf               Text -> aus_typ,aus_tab;
  wcg_decode__                abarbeiten
   AP_cont_nxt                Kontur -> oxInpU (memspc)
   wcg_decode_APT             Konikinfos -> deTab
   wcg_CreCutAll              Ausgabeelemente -> oxOutU/O[oxOutNr]
    wcg_CreCutCyl
    wcg_CreCutCon
    wcg_CreCutCpx
     wcg_cpx_break
      wcg_cpx_teilen
  wcg_OutDrawAll              Ausgabeobjekte anzeigen.
   GR_DrawSur                 dzt werden Typ_SURRU einzeln ausgegeben
UI_wcg_InitProc               Konikinfos anzeigen
UI_wcg_UpdateProc             Konikinfos aus menue uebernehmen (OK-Butt.)
UI_wcg_askExit                beenden
 UI_wcg_CB_ExitDia            beenden
  UI_wcg_SaveOK               Progr -> Editwin
   wcg_encode__               das aktuelle APT-prog -> memspc54



........ NC-Tech ........
APT_wcut_line                 eine NC-Bearbeitungszeile decodieren
UI_wcTec__                    Window aufbauen
UI_wcTec_Init1                erster Start
 UI_wcTec_find_tec
NC_up_Work_                   WORK CUT ..
NC_up_Pock_

IGES

UI_menCB "open"
UI_open__
AP_Import__ ("xa_ige_r", "IGE_r__", cbuf);
AP_Mod_load
AP_ImportIges
 IGE_r__                      Mainentry in ../exp/ige_r.c
  IGE_r_D__
  IGE_r_P__
   IGE_r_work__               abarbeiten
  IGE_r_work_1                subfigs, dann main abarbeiten
   IGE_r_work_2               ein Obj ausgeben
    IGE_r_128
  AP_obj_2_txt
  UTF_add2_line

UI_expIgeCB
 AP_ExportIges__
  AP_ExportIges_Model
   IGE_w_rec
     IGE_w_mat
       IGE_w_P_ELL

DXF

dxf_r.c        ../exp/dxf_r.c  Import DXF-functions        (dxfr_)
dxf_w.c        ../exp/dxf_w.c  Export DXF-functions        (dxfw_)
UI_menCB "impDxf/expDxf"
DXF_r__
  dxfr_init            get txsiz,dimsiz,$EXT..
    dxfr_head__
  dxfr_rec__
  dxfr_rec__           read obj 
  AP_obj_2_txt         create code, write > mem_cbuf1
  UTF_insert1          add to mem
AP_ExportDxf
  dxfw_rec

VRML

wrl_readTess__                wrl_ut.c          Import

TSU_exp__                     ../gr/tess_ut.c   Export
 TSU_exp_sur

Textures

ui_tex.c                  // ModifyTexturesWindow
xa_tex.c                  // Texture-Utility-Functions.
gru.c                     // OpenGl-Texture-Utility-Functions.
UI_Tex__

  GL_Tex_Load
    bmp_load

GR_DrawSur
 TSU_DrawSurT_ > TSU_DrawSurTP , TSU_DrawSurTRU
 GL_DrawSur
  GRU_tex_pos1          compute texture-parameters (vectors, scale)
   TSU_get_vec
   GRU_tex_rec
   GRU_tex_pos9
  GL_Tex_Ini            apply texture
   glTexGendv (GL_S,      apply horizontal vector vs
   glTexGendv (GL_T,      apply vertical vector vt
   glRotatef              apply rotation
   glScalef               apply scale
   glTranslatef           apply offset ...

Tesselate

APT_DrawSur
 GR_DrawSur
  TSU_DrawSurT_
   TSU_DrawSurTC              getrimmte/gelochte Flaeche
    TSU_tr_init_
    TSU_DrawSurTBox
     GLT_comm_work
     GLT_diff_work

cursorPosition

GL_set_viewPlnPos       GL_actUsrPos, on  viewPlane    (GL_GetViewPos)
GR_set_constPlnPos      GR_CurUk, on constructionPlane (GL_GetConstrPos)

UI_GR_get_actPos_       return the active cursorPosition as string "<x> <y> <z>"

GL_GetActSelPos         Coords of last selectionPoint on viewPlane
UI_GR_get_actPosA       get current curPos in userCoords on constructionPlane

GL_Get_Cen              screencenter in userCoords
GL_get_Scale
GL_GetEyeLn             Sichtstrahl (Point & Vector) retournieren
GL_GetEyeX

UI_GR_SelVert           get vertext nearest to cursor

DL-OpenGL

DL_ReScale__                  Rescale rescale ScalAll
DL_InitAttTab                 Def.Attributtabelle laden
DL_DumpObjTab                 dump DispList

GL_DrawLine                   ../gr/ut_GL.c
GL_DrawTxtG                   ../gr/ut_GL.c
GL_Redraw                     redraw DL

DLLs

see also xa_dll.c (DLL_)

                              xa_dll.c
UI_DllLst_read                fill list of userprograms (DLL's)
UI_DllLst_CB                  DLL by user selected ..
AP_exec_dll                   start plugin

Plotten

 UI_WinPrint1
  AP_print__                  ../exp/prt_w.c
   AP_print_work2
Generated on Fri Apr 6 09:40:11 2012 for gCAD3D by  doxygen 1.6.3