ut_DL.c File Reference


Detailed Description

Grafic: displayList functions DL_.

=====================================================
Liste_Funktionen_Beginn:

DL_Init
DL_InitAttTab
DL_InitAttRec
DL_alloc__              realloc space fuer BasModelnames

DL_Redraw
DL_StoreObj             Den naechsten freien DispList-Platz belegen
DL_Stat                 ausgabe Statistik
DL_DumpObjTab
DL_DumpObj__

DL_StoreAtt
DL_disp_def             fuer alle nun folgenden Obj GR_ObjTab.disp=mode setzen
DL_disp_chg             change VIEW-Bit of complete DL
DL_disp_hili
DL_disp_reset
DL_hideParent
DL_unvis_set
DL_unvis__              iNr objekte von unvisible machen
DL_disp_set             setzt nur das DispListFeld
DL_pick_set

DL_grp1_set             Zugehoerigkeit zu Group 1 setzen; ON od OFF
DL_grp1__               add / remove (change) Groupbit 1 of DL-Record ind
DL_grp1_copy            copy all DL-obj with groupBit ON --> GroupList

DL_GetAtt               liefert alle GL-Attribute (GR_ObjTab[objInd])
DL_Get_GrAtt            get graf.Att (GR_AttTab[Ind])
DL_GetTyp               get obj-typ from DL-ind
DL_GetInd               get DB-ind from DL-ind
DL_GetTrInd
DL_GetPick
DL_get_iLast            find DL-index of last line before APT-LineNr lNr
DL_GetNrSur             get nr of surs in DispList
DL_find_obj             Objekt typ=typ APTind=ind in der DL suchen
DL_find_sel             find selected object in DL

DL_Lay_act_g1           activate GroupBit1 des layer Nr. layNr
DL_Lay_typ_g1           grp_1 fuer alle Obj, die NICHT Typ i1 haben, auf OFF.
DL_Lay_col_g1           GroupBit1 mal f. alle Obj, die NICHT Farbe i1 haben, ON
DL_Lay_ltyp_g1
DL_Lay_thk_g1
DL_Lay_mod
DL_Lay_add

DL_txtgetInfo           Infos zu Tag/Image holen
DL_txtSelect            check if TextTag was selcted and add obj to tables
DL_IactSelect           check if Interactivity is connected
DL_setTagSiz              bei tags und Bitmaps die size im DL-record speichern

DL_sav_dynDat           save the DYNAMIC_DATA of the actual mainModel
DL_load_dynDat          reload the DYNAMIC_DATA
DL_wri_dynDat0
DL_wri_dynDat1

DL_ReScale__
DL_ReScale_Notes
DL_ReScale_pt_get       uxmin-uzmax erweitern um Box
DL_ReScalePoint
DL_ReScaleObj

Liste_Funktionen_Ende:
=====================================================

#include "../xa/MS_Def1.h"
#include <string.h>
#include <math.h>
#include <stdio.h>
#include <GL/gl.h>
#include "../ut/ut_geo.h"
#include "../ut/ut_TX.h"
#include "../ut/ut_txfil.h"
#include "../ut/ut_txt.h"
#include "../gr/ut_UI.h"
#include "../gr/vf.h"
#include "../db/ut_DB.h"
#include "../gr/ut_GL.h"
#include "../gr/ut_DL.h"
#include "../gr/ut_gr.h"
#include "../xa/xa_mem.h"
#include "../xa/xa_uid.h"
#include "../xa/xa_obj_txt.h"
#include "../xa/xa.h"

Functions

int DL_txtgetInfo (int *typ, Point *p1, int *sx, int *sy, int *dx, int *dy, long dli)
 ====================================================================
int DL_txtSelect (int iNr, int *typTab, long *indTab, long *dlTab)
 ====================================================================
int DL_IactSelect (int iNr, int *typTab, long *indTab, long *dlTab)
 ====================================================================
int DL_setTagSiz (long dli, int xsiz, int ysiz)
 ================================================================
int DL_Stat ()
 ===============================================================
void DL_disp_def (int mode)
 ===============================================================
int DL_sav_dynDat ()
 ===============================================================
int DL_load_dynDat ()
 ===============================================================
int DL_wri_dynDat0 (FILE *fpo)
 ===============================================================
int DL_wri_dynDat1 (FILE *fpo)
 ===============================================================
int DL_disp_chg ()
 ===============================================================
int DL_unvis__ (long i1, long iNr)
 ================================================================
int DL_unvis_set (long ind, int mode)
 ===============================================================
void DL_disp_set (long ind, int mode)
 ===============================================================
int DL_pick_set (long ind, int mode)
 ===============================================================
int DL_grp1__ (long ind, char *cbuf1)
 ===============================================================
int DL_grp1_set (long ind, int mode)
 ===============================================================
int DL_grp1_copy ()
 ================================================================
int DL_alloc__ (long Ind)
 =======================================================================
void DL_Init ()
 ============================================================
int DL_GetAttNr ()
 ================================================================
void DL_InitAttTab ()
 ============================================================
void DL_InitAttRec (int ind, int col, int ltyp, int lthick)
 ============================================================
int DL_Redraw ()
 ==============================================================
int DL_SetLnr (long dli, long lNr)
 ================================================================
int DL_SetInd (long dli)
 ================================================================
long DL_StoreObj (int Typ, long DBInd, int AttInd)
 ============================================================
int DL_DumpObj__ (long idl)
 ================================================================
void DL_DumpObjTab ()
 ================================================================
long DL_find_obj (int typ, long DBind, long DLend)
 =============================================================
int DL_find_sel (int *typ, long *ind)
 ================================================================
int DL_GetTyp (long objInd)
 ============================================================
long DL_GetInd (long objInd)
 ============================================================
int DL_GetPick (long objInd)
 =============================================================
DL_Att DL_GetAtt (long objInd)
 =============================================================
int DL_Get_GrAtt (GR_Att *att1, long Ind)
 ===============================================================
int DL_GetNrSur ()
 ================================================================
int DL_GetNrSol ()
 ================================================================
int DL_StoreAtt (long Ind, GR_Att *att1)
 ============================================================
void DL_Lay_act_g1 (int layNr, int mode)
 ***********************************************************************
void DL_Lay_typ_g1 (int typ, int mode)
 ***********************************************************************
void DL_Lay_col_g1 (int col, int mode)
 ***********************************************************************
void DL_Lay_ltyp_g1 (int ltyp, int mode)
 ***********************************************************************
void DL_Lay_thk_g1 (int thk, int mode)
 ***********************************************************************
int DL_Lay_mod (int layNr, int func, int mode)
 ***********************************************************************
int DL_Lay_add (int layNr)
 ***********************************************************************
int DL_ReScale_pt_get (Point *pt1, Point *pt2)
 ====================================================================
void DL_ReScalePoint (Point *pt1)
 ====================================================================
int DL_ReScaleObj (ObjGX *oxi)
 ====================================================================
void DL_ReScale__ ()
 ====================================================================
int DL_ReScale_Notes (Point *pb1, Point *pb2)
 ================================================================
int DL_hideParent (int typ, long iPar)
 ================================================================
int DL_disp_reset (int lNr)
 ================================================================
int DL_setRefSys (long dli)
 ================================================================
int DL_get_iLast (long *dli, int *typ, int lNr)
 ================================================================
int DL_disp_hili (int lNr)
 =======================================================================

Variables

int WC_modnr
 the Nr of the active submodel; -1 = main.
int WC_sur_ind
 Der Index auf die ActiveConstrPlane.
Plane WC_sur_act
 die fuer Definition (zB P10=0,0) aktive Plane
double WC_sur_Z
 active Z-value of WC_sur_sur;
double AP_txsiz
 Notes-Defaultsize.
double AP_txdimsiz
 Dimensions-Text-Defaultsize.
int AP_txNkNr
 Nachkommastellen.
ColRGB AP_defcol
 die DefaultColor des aktiven (sub)Model
double APT_ModSiz
int GR_pick
int GR_lay_act
int APT_2d_to_3d_Ind
int APT_2d_to_3d_mode
Mat_4x3 APT_2d_to_3d_Mat
int APT_line_act
int UP_level
int AP_mdLev
int GL_modified
double GR_tx_scale
DL_AttGR_ObjTab = NULL
long GR_TAB_SIZ = 0
long GR_TAB_INC = 5000
long GR_TAB_IND = 0
GR_Att GR_AttTab [GR_ATT_TAB_SIZ]
static int GR_AttInd = 0
static double uxmin = 0.
static double uymin = 0.
static double uzmin = 0.
static double uxmax
static double uymax
static double uzmax
static int DL_disp_act
long DL_ind_act = -1


Function Documentation

int DL_txtgetInfo ( int *  typ,
Point p1,
int *  sx,
int *  sy,
int *  dx,
int *  dy,
long  dli 
)

====================================================================

==================================================================== Infos zu Tag/Image holen Input: dli DL-Index of "N"ote Output: typ Tagtyp; 1=Image .. p1 Textposition of Text in Usercoords sx, sy size of 2D-Field in screencoords dx, dy offset from p1 to lower left 2D-corner in screencoords

int DL_txtSelect ( int  iNr,
int *  typTab,
long *  indTab,
long *  dlTab 
)

====================================================================

==================================================================== check if TextTag was selcted and add obj to tables

int DL_IactSelect ( int  iNr,
int *  typTab,
long *  indTab,
long *  dlTab 
)

====================================================================

==================================================================== check if Interactivity is connected to one of the selected objects

int DL_setTagSiz ( long  dli,
int  xsiz,
int  ysiz 
)

================================================================

================================================================ bei tags und Bitmaps die size im DL-record speichern

int DL_Stat (  ) 

===============================================================

=============================================================== ausgabe Statistik

void DL_disp_def ( int  mode  ) 

===============================================================

=============================================================== fuer alle nun folgenden Obj GR_ObjTab.disp=mode setzen. Geht nur, wenn DispListIndex mit DL_StoreObj generiert wird !

int DL_sav_dynDat (  ) 

===============================================================

=============================================================== save the DYNAMIC_DATA of the actual mainModel

int DL_load_dynDat (  ) 

===============================================================

=============================================================== reload the DYNAMIC_DATA of the actual mainModel

int DL_wri_dynDat0 ( FILE *  fpo  ) 

===============================================================

=============================================================== write :DYNAMIC_DATA

int DL_wri_dynDat1 ( FILE *  fpo  ) 

===============================================================

=============================================================== write MODSIZ DEFTX DEFCOL VIEW CONST_PL :DYNAMIC_DATA add :DYNAMIC_DATA without HIDE

int DL_disp_chg (  ) 

===============================================================

=============================================================== change VIEW-Bit of complete DL

int DL_unvis__ ( long  i1,
long  iNr 
)

================================================================

================================================================ alle objekte von i1 unvisible machen ...

int DL_unvis_set ( long  ind,
int  mode 
)

===============================================================

=============================================================== unvis: 0 = visible; 1 = obj is unvisible

void DL_disp_set ( long  ind,
int  mode 
)

===============================================================

=============================================================== mode = ON(0) oder OFF(1,hide) setzt nur das DispListFeld.

int DL_pick_set ( long  ind,
int  mode 
)

===============================================================

=============================================================== Selektierbarkeit; ON od OFF. Default == pickable == 1; not pickable==0.

int DL_grp1__ ( long  ind,
char *  cbuf1 
)

===============================================================

=============================================================== add / remove (change) Groupbit 1 of DL-Record ind cbuf1 nur Infotext

int DL_grp1_set ( long  ind,
int  mode 
)

===============================================================

=============================================================== Zugehoerigkeit zu Group 1; ON od OFF. Default == nicht_zugehoerig == OFF == 1; zugehoerig == ON == 0.

int DL_grp1_copy (  ) 

================================================================

================================================================ copy all DL-obj with groupBit ON --> GroupList.

int DL_alloc__ ( long  Ind  ) 

=======================================================================

======================================================================= realloc space fuer DL; wird nicht gesichert !

void DL_Init (  ) 

============================================================

============================================================

int DL_GetAttNr (  ) 

================================================================

================================================================ Anzahl definierter Attribute

void DL_InitAttTab (  ) 

============================================================

============================================================ read ltyp.rc --> GR_AttTab

void DL_InitAttRec ( int  ind,
int  col,
int  ltyp,
int  lthick 
)

============================================================

============================================================

int DL_Redraw (  ) 

==============================================================

==============================================================

int DL_SetLnr ( long  dli,
long  lNr 
)

================================================================

================================================================ Overwrite the APT-LinNr bei Modify

int DL_SetInd ( long  dli  ) 

================================================================

================================================================ -1 = default = create new DL-Record. if(dli >= 0): DL_StoreObj does not creat new DL-Record !! (modify object) DL_SetInd (-1L); // to reset (after GL_fix_DL_ind )

long DL_StoreObj ( int  Typ,
long  DBInd,
int  AttInd 
)

============================================================

============================================================ Den naechsten freien DispList-Platz belegen mit Typ, DBInd, att .... In der (hier lokalen) Displayliste, DBInd und Att speichern. Wird benutzt von GL zum Redraw, beim Select.

Dynam. Objekte, die ueberhaupt nicht in der APT-DB gespeichert werden, erhalten als DBInd den negativen DispList-Index. Das temp-bit .temp wird auf 1 gesetzt.

DBInd 0: definiert temp. Obj 8 DBInd -1: temp. Obj m ind. -GR_TAB_IND

dlInd = DL_StoreObj (Typ_LN, objInd, attInd); IN: Objectindex objInd und ObjTyp Typ_xx OUT: DispListIndex dlInd

int DL_DumpObj__ ( long  idl  ) 

================================================================

================================================================ see GA_dump__

void DL_DumpObjTab (  ) 

================================================================

================================================================

long DL_find_obj ( int  typ,
long  DBind,
long  DLend 
)

=============================================================

============================================================= Objekt typ=typ APTind=ind in der DL suchen. liefert DisplayListIndex des letzen definierten Objekts see AP_typ_2_bastyp AP_cmp_typ Hidden objects haben -1 !! Input: typ objTyp (Typ_PT ..) DBind dataBaseIndex of obj to search DLend last DL-Index to check; -1L = search in complete DL retCode = DispListIndex

int DL_find_sel ( int *  typ,
long *  ind 
)

================================================================

================================================================ find selected objectID wird genauso verwendet in GL_Redraw

int DL_GetTyp ( long  objInd  ) 

============================================================

============================================================ liefert den Typ eines DB-Obj (als return-Code)

long DL_GetInd ( long  objInd  ) 

============================================================

============================================================ liefert den DB-index eines DB-Obj (als return-Code)

Input: objInd; alle andern Out.

int DL_GetPick ( long  objInd  ) 

=============================================================

=============================================================

DL_Att DL_GetAtt ( long  objInd  ) 

=============================================================

=============================================================

int DL_Get_GrAtt ( GR_Att att1,
long  Ind 
)

===============================================================

=============================================================== get graf.Att (GR_AttTab[Ind])

int DL_GetNrSur (  ) 

================================================================

================================================================ DL_GetNrSur get nr of sur's in DispList

int DL_GetNrSol (  ) 

================================================================

================================================================ DL_GetNrSol get nr of sol's in DispList

int DL_StoreAtt ( long  Ind,
GR_Att att1 
)

============================================================

============================================================

void DL_Lay_act_g1 ( int  layNr,
int  mode 
)

***********************************************************************

void DL_Lay_typ_g1 ( int  typ,
int  mode 
)

***********************************************************************

void DL_Lay_col_g1 ( int  col,
int  mode 
)

***********************************************************************

void DL_Lay_ltyp_g1 ( int  ltyp,
int  mode 
)

***********************************************************************

void DL_Lay_thk_g1 ( int  thk,
int  mode 
)

***********************************************************************

int DL_Lay_mod ( int  layNr,
int  func,
int  mode 
)

***********************************************************************

int DL_Lay_add ( int  layNr  ) 

***********************************************************************

***********************************************************************

int DL_ReScale_pt_get ( Point pt1,
Point pt2 
)

====================================================================

==================================================================== uxmin-uzmax erweitern um Box

void DL_ReScalePoint ( Point pt1  ) 

====================================================================

====================================================================

int DL_ReScaleObj ( ObjGX oxi  ) 

====================================================================

====================================================================

void DL_ReScale__ (  ) 

====================================================================

====================================================================

int DL_ReScale_Notes ( Point pb1,
Point pb2 
)

================================================================

================================================================

int DL_hideParent ( int  typ,
long  iPar 
)

================================================================

================================================================ find parentRec in DL (= zu hidender DL-Rec; typ/Ind of parentObj); iatt des parentRec erhaelt den DL-Index des neuen DL-Record. hide parentRec: set autoHid of parentRec to ON; Das reaktivate Parent macht DL_disp_reset().

int DL_disp_reset ( int  lNr  ) 

================================================================

================================================================ alle Ausgabeobjekte der APT-Zeilen ab (inclusive) lNr loeschen

int DL_setRefSys ( long  dli  ) 

================================================================

================================================================ RefSys entprechend DL-Record setzen

int DL_get_iLast ( long *  dli,
int *  typ,
int  lNr 
)

================================================================

================================================================ find DL-index of last line before APT-LineNr lNr in DL. typ unused.

int DL_disp_hili ( int  lNr  ) 

=======================================================================

======================================================================= hilite Obj of line lNr lNr ist die APT-LinNr see also IE_cad_Inp_disp AP_hili_obj


Variable Documentation

int WC_modnr

the Nr of the active submodel; -1 = main.

Der Index auf die ActiveConstrPlane.

Index auf die ActiveConstrPlane.

die fuer Definition (zB P10=0,0) aktive Plane

die aktive Plane

double WC_sur_Z

active Z-value of WC_sur_sur;

double AP_txsiz

Notes-Defaultsize.

double AP_txdimsiz

Dimensions-Text-Defaultsize.

Dimensions-Text-size.

int AP_txNkNr

Nachkommastellen.

die DefaultColor des aktiven (sub)Model

double APT_ModSiz

int GR_pick

int UP_level

int AP_mdLev

double GR_tx_scale

DL_Att* GR_ObjTab = NULL

long GR_TAB_SIZ = 0

long GR_TAB_INC = 5000

long GR_TAB_IND = 0

GR_Att GR_AttTab[GR_ATT_TAB_SIZ]

int GR_AttInd = 0 [static]

double uxmin = 0. [static]

double uymin = 0. [static]

double uzmin = 0. [static]

double uxmax [static]

double uymax [static]

double uzmax [static]

int DL_disp_act [static]

long DL_ind_act = -1


Generated on Sat May 30 09:31:54 2009 for gCAD3D by  doxygen 1.5.6