gCAD3D 2.35
xa_ato.c File Reference

functions handling atomicObjects. More...

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <ctype.h>
#include "../ut/ut_geo.h"
#include "../ut/ut_gtypes.h"
#include "../ut/ut_txt.h"
#include "../ut/ut_txTab.h"
#include "../ut/ut_memTab.h"
#include "../ut/ut_BitTab.h"
#include "../db/ut_DB.h"
#include "../xa/xa_mem.h"
#include "../xa/xa_ato.h"
#include "../xa/xa_sele.h"
#include "../gui/gui__.h"

Functions

int ATO_ato_srcLn_exp (ObjAto *ato, int *typ, double *val, char *srcLn)
 
int ATO_ato_expr_add (ObjAto *ato, int typ, double val, int lev)
 
int ATO_dump__ (ObjAto *ato, char *txt)
 
int ATO_getSpc_tmpSiz (int sizTab)
 
void ATO_getSpc_tmp1 (ObjAto *ato, int sizTab)
 
int ATO_ato_typTab (ObjAto *ato, int aus_anz, int aus_typ[], double aus_tab[])
 
int ATO_ato_atoTab__ (int *aTyp, double *aVal, ObjAto *ato)
 
int ATO_ato_expr__ (ObjAto *ato, char *exp, int sLen)
 
int ATO_getSpc__ (ObjAto *ato1)
 
int ATO_getSpc1 (int *tabSiz, int **aus_typ, double **aus_tab)
 
int ATO_sort1 (int oNr, int *oTyp, double *oVal)
 
int ATO_srcTxt (int *atoTyp, double *atoVal, char *cmd)
 
int ATO_swap (int aus_typ[], double aus_tab[], int i1, int i2)
 
int ATO_cpy_rec (ObjAto *ato, int iTo, int iFrom)
 
int ATO_clear_block (ObjAto *ato, int is, int bNr)
 
int ATO_clean__ (ObjAto *ato)
 
int ATO_pNr__ (int *iSta, ObjAto *ato)
 
int ATO_ato_eval_geom (ObjAto *ato, int iif)
 
int ATO_ato_eval__ (ObjAto *ato)
 
int ATO_eval_ope__ (ObjAto *ato)
 
int ATO_eval_fnc1__ (ObjAto *ato)
 
int ATO_ato_txo__ (ObjAto *ato, ObjTXTSRC *tso, char *sl)
 
int ATO_ato_srcLn__ (ObjAto *ato, char *srcLn)
 
int ATO_ato_obj_pt (ObjAto *ato, int outTyp, int iseg, int typ, void *o1, Point *ptx)
 

Variables

char * ObjCodTab []
 
double NcoValTab []
 

Detailed Description

functions handling atomicObjects.

=====================================================
List_functions_start:
ATO_ato_srcLn__ get atomicObjects from sourceLine; full evaluated.
ATO_ato_txo__ get atomic-objects from source-objects
ATO_ato_expr_add add ato to ato-table
ATO_swap swap 2 records
ATO_clear__ delete all records
ATO_clear_block delete block of records
ATO_clean__ make clean atomicObjects from ato (use ATO_clean_1)
ATO_clean_1 close all gaps (typ == Typ_NULL)
ATO_cpy_rec copy ATO-record iTo = iFrom, delete iFrom
ATO_sort1 sort types ascending
ATO_pNr__ get nr of parameters following record
// ATO_ato_srcLn_exp DO NOT USE get/add ato as typ/val from modelCode
// ATO_ato_atoTab__ DO NOT USE get single dbo from ato
// ATO_ato_expr__ DO NOT USE get struct from modelCode (text).
ATO_ato_typTab get atomicObjects from aus_typ/aus_tab (old version)
ATO_ato_eval__ evaluate atomic-objects (compute); reduce records.
ATO_ato_eval_geom evaluate geometrical functions
ATO_ato_obj_pt get parametric position of point on obj
ATO_srcTxt get atomicObj from Typ_Txt (after AP_typ_srcExpr)
ATO_getSpc_tmp__ get memspace for atomicObjects
ATO_getSpc__ get memSpc for atomicObjects (memspc53/54/55)
ATO_getSpc1 get memSpc for atomicObjects - simple
ATO_getSpc_tmpSiz compute necessary space for type/value-table
ATO_dump__ dump ato-table
List_functions_end:
=====================================================
see also: APT_obj_ato // DO NOT USE

Function Documentation

int ATO_ato_srcLn_exp ( ObjAto ato,
int *  typ,
double *  val,
char *  srcLn 
)
int ATO_ato_expr_add ( ObjAto ato,
int  typ,
double  val,
int  lev 
)
add ato to ato-table
Example: ATO_ato_expr_add (&ato, Typ_PT, 20., 0);
int ATO_dump__ ( ObjAto ato,
char *  txt 
)
int ATO_getSpc_tmpSiz ( int  sizTab)

compute necessary space for type/value-table

void ATO_getSpc_tmp1 ( ObjAto ato,
int  sizTab 
)

aux.Func for ATO_getSpc_tmp__

int ATO_ato_typTab ( ObjAto ato,
int  aus_anz,
int  aus_typ[],
double  aus_tab[] 
)
int ATO_ato_atoTab__ ( int *  aTyp,
double *  aVal,
ObjAto ato 
)
int ATO_ato_expr__ ( ObjAto ato,
char *  exp,
int  sLen 
)
int ATO_getSpc__ ( ObjAto ato1)
ATO_getSpc get memSpc for atomicObjects
int ATO_getSpc1 ( int *  tabSiz,
int **  aus_typ,
double **  aus_tab 
)
DO NOT USE - use ATO_getSpc__
ATO_getSpc1 get memSpc for atomicObjects - simple
int ATO_sort1 ( int  oNr,
int *  oTyp,
double *  oVal 
)

sort types ascending

int ATO_srcTxt ( int *  atoTyp,
double *  atoVal,
char *  cmd 
)
int ATO_swap ( int  aus_typ[],
double  aus_tab[],
int  i1,
int  i2 
)

ATO_swap swap 2 records see also ATO_cpy_rec

int ATO_cpy_rec ( ObjAto ato,
int  iTo,
int  iFrom 
)
int ATO_clear_block ( ObjAto ato,
int  is,
int  bNr 
)
ATO_clear_block delete block of records
Input:
is index of 1. record to delete
bNr nr of records to delete
int ATO_clean__ ( ObjAto ato)
int ATO_pNr__ ( int *  iSta,
ObjAto ato 
)
int ATO_ato_eval_geom ( ObjAto ato,
int  iif 
)
evaluate geometrical functions
geom-func: P(2) L,C,D,R,S,U(121) ANG(137) X(134) Y,Z ..
Input:
iif startindex in ato
Output:
ato ?
Retcod: 0 = no geom.func; 1 = function evaluated; -1 = error
see APT_decode_func ../ci/NC_apt.c :16974
int ATO_ato_eval__ ( ObjAto ato)
evaluate atomic-objects (compute); reduce records.
math-func: SQRT(290) SIN...
geom-func: P(2) L,C,D,R,S,U(121) ANG(137) X(134) Y,Z
loop tru all levels(highest first), evaluate ..
Record inaktiv setzen (Typ=Typ_NULL); ganz am Ende kompaktieren.
Input, Output: ato.
int ATO_eval_ope__ ( ObjAto ato)
evaluate math.operators (+-*/)
3 records Typ_Val/MathOperator/Typ_Val into 1 record Typ_Val.
Retcode: nr of evaluations
int ATO_eval_fnc1__ ( ObjAto ato)
int ATO_ato_txo__ ( ObjAto ato,
ObjTXTSRC tso,
char *  sl 
)
get atomic-objects from source-objects
Input:
tso
sl srcTxt
Output:
ato
int ATO_ato_srcLn__ ( ObjAto ato,
char *  srcLn 
)
get atomicObjects from sourceLine; full evaluated.
(provides dynamic-DB-obj's for geometric expressions)
must provide memspc before with ATO_getSpc__
Input:
srcLn eg "D(0 0 1)" // may not have objNames !
Output:
ato eg ato->nr=1; ato->typ[0]=Typ_VC; ato->val[0]=-2.;
RetCod 0=OK, -1=Err
Example:
ATO_getSpc__ (&ato);
i1 = ATO_ato_srcLn__ (&ato, s1);
ATO_dump__ (&ato, " after _ato_srcLn__");
int ATO_ato_obj_pt ( ObjAto ato,
int  outTyp,
int  iseg,
int  typ,
void *  o1,
Point ptx 
)

Variable Documentation

char* ObjCodTab[]
double NcoValTab[]