gCAD3D 2.40
ut_prcv.c File Reference

polygonal_representation_of_curve (struct CurvPrcv) More...

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../ut/ut_geo.h"
#include "../ut/ut_geo_const.h"
#include "../ut/ut_memTab.h"
#include "../ut/ut_os.h"
#include "../db/ut_DB.h"
#include "../xa/xa_mem.h"

Macros

#define PRCV0_INC_PTNR   256
 

Functions

int PRCV_free__ ()
 
int PRCV_npt_dbo__ (Point **pta, int *ptNr, int typ, long dbi, int mdli)
 
int PRCV_get_dbo__ (CurvPrcv *prc1)
 
int PRCV_get_tc_add_pa (CurvPrcv *prc1, Point *pta, int ptNr)
 
int PRCV_get_dbo_add_ln (CurvPrcv *prc1, CurvCCV *cvi)
 
int PRCV_get_dbo_add_tc (CurvPrcv *prc1, CurvCCV *cvi)
 
int PRCV_get_tc_add_prc (CurvPrcv *prc1, CurvPrcv *prc2, int ptNr, int ips, int idir)
 
int PRCV_get_tc_find (double vx, long ipdb, CurvPrcv *prc)
 
int PRCV_set_dbo__ (int typ, long dbi)
 
int PRCV_set_obj_dbi (int form, void *obj, int oNr, int typ, long dbi)
 
int PRCV_set_copy (CurvPrcv *prc2, CurvPrcv *prc1, int ips, int ipe)
 
int PRCV_set_seg (CurvPrcv *prc, int form, void *cvBas, double vs, double ve, long ipdbs, long ipdbe)
 
int PRCV_set_find (long *ipdbs, long *ips, double *vs, long *ipdbe, long *ipe, double *ve, CurvPrcv *prc1, double *vx)
 
int PRCV_set_basCv (int form, void *cvBas, long dbi)
 
int PRCV_memspc_ini (CurvPrcv *prc, int ptNr, char *mSpc, int mSiz)
 
int PRCV_memspc_add (CurvPrcv *prc, int ptNr)
 
int PRCV_wrf__ (CurvPrcv *prc)
 
int PRCV_fnam__ (char *fno, CurvPrcv *prc)
 
int PRCV_fsiz__ (CurvPrcv *prc)
 
int PRCV_rdf__ (CurvPrcv *prc)
 
int PRCV_rdf_free (CurvPrcv *prc)
 
int PRCV_dump_dbo (int mode, int dbTyp, long dbi)
 
int PRCV_dump_1 (int ii, CurvPrcv *prc)
 
int PRCV_dump__ (int mode, CurvPrcv *prc, char *txt)
 
int PRCV_npt_trmCv (Point **pta, int *ptNr, CurvCCV *ccv1)
 

Variables

int WC_modact_ind
 
static CurvPrcv PRCV0 = _PRCV_NUL
 

Detailed Description

polygonal_representation_of_curve (struct CurvPrcv)

=====================================================
List_functions_start:
PRCV_set_dbo__ create PRCV from bin.obj
PRCV_set_obj_dbi create PRCV for bin.obj (must have DB-index)
PRCV_set_basCv create PRCV for basicCurve
PRCV_set_seg add curve from vs to ve to PRCV
PRCV_set_find get previous-parameter and next-parameter
PRCV_npt_dbo__ get polygon for DB-obj
PRCV_npt_trmCv get polygon of trimmedCurve
PRCV_get_dbo__ get PRCV for DB-obj (typ/dbi)
PRCV_get_dbo_add_tc add trimmed-curve ccv1 to prc1
PRCV_get_tc_add_pa add point to prc1
PRCV_get_tc_add_prc add <ptNr> points from prc2 starting at point <ips> to prc1
PRCV_get_tc_find find index in from parameter or dbi in PRCV
PRCV_memspc_add add space
PRCV_free__ free PRCV0 (new-model)
PRCV_wrf__ write cvp into file "[M<subModelNr>]S<curve#>.odat"
PRCV_rdf__ read PRCV from file "[M<subModelNr>]S<curve#>.odat"
PRCV_fsiz__ get filesize
PRCV_fnam__ get filename
PRCV_test__
PRCV_test_set
PRCV_test_get test get PRCV for dbo
PRCV_test_disp
// PRCV_insert_par
// PRCV_insert__ Create PRC, add 1 or 2 intermediate points
// PRCV_ccv__ get PRCV from trimmed-curve
List_functions_end:
=====================================================

Macro Definition Documentation

#define PRCV0_INC_PTNR   256

Function Documentation

int PRCV_free__ ( )
* free PRCV0
* used only when new model is activated
*
int PRCV_npt_dbo__ ( Point **  pta,
int *  ptNr,
int  typ,
long  dbi,
int  mdli 
)
* PRCV_npt_dbo__ get polygon for DB-obj
* Output:
* pta returns a pointer to <ptNr> points; do not free.
*
int PRCV_get_dbo__ ( CurvPrcv prc1)
* get PRCV for DB-obj (typ/dbi)
* Memspc for point, parameters must have been provided with PRCV_memspc_ini
* MUST free prc1 with PRCV_rdf_free !
* Input:
* prc1 typ,dbi,mdli must be set; prc1 = PRCV0
* Output:
* prc1 ptNr,npt,npar,nipt
*
int PRCV_get_tc_add_pa ( CurvPrcv prc1,
Point pta,
int  ptNr 
)
int PRCV_get_dbo_add_ln ( CurvPrcv prc1,
CurvCCV cvi 
)
int PRCV_get_dbo_add_tc ( CurvPrcv prc1,
CurvCCV cvi 
)
int PRCV_get_tc_add_prc ( CurvPrcv prc1,
CurvPrcv prc2,
int  ptNr,
int  ips,
int  idir 
)
int PRCV_get_tc_find ( double  vx,
long  ipdb,
CurvPrcv prc 
)
* PRCV_get_tc_find find index from parameter or dbi in PRCV
* Input:
* vx parameter
* ipdb dbi
* Output:
* retCod index of point with parameter=vx or dbi=ipdb in prc
* -1 not-found
*
int PRCV_set_dbo__ ( int  typ,
long  dbi 
)
int PRCV_set_obj_dbi ( int  form,
void *  obj,
int  oNr,
int  typ,
long  dbi 
)
* PRCV_set_obj_dbi create PRCV for bin.obj (must have DB-index)
* lines do not have PRCV-file
* using memspc201
* Input:
* typ,dbi dbo baseCurve
* form,obj,oNr bin.obj (from DB_GetObjDat())
*
int PRCV_set_copy ( CurvPrcv prc2,
CurvPrcv prc1,
int  ips,
int  ipe 
)
int PRCV_set_seg ( CurvPrcv prc,
int  form,
void *  cvBas,
double  vs,
double  ve,
long  ipdbs,
long  ipdbe 
)
int PRCV_set_find ( long *  ipdbs,
long *  ips,
double *  vs,
long *  ipdbe,
long *  ipe,
double *  ve,
CurvPrcv prc1,
double *  vx 
)
* get previous-parameter and next-parameter
* Input:
* vx value to test
* Output:
* vs previous value, vs < vx
* ve next value, ve > vx
* retCod 0 previous and next value found
* 1 value already exists
*
int PRCV_set_basCv ( int  form,
void *  cvBas,
long  dbi 
)
int PRCV_memspc_ini ( CurvPrcv prc,
int  ptNr,
char *  mSpc,
int  mSiz 
)
int PRCV_memspc_add ( CurvPrcv prc,
int  ptNr 
)
* PRCV_memspc_add add space for <ptNr> points
* not enough memspc. malloc-realloc; heap-Error; empty-malloc.
* Input:
* ptNr total size in nr of points
* Retcodes: 0=OK, -1=Error-heap; -2=EOM
*
int PRCV_wrf__ ( CurvPrcv prc)
int PRCV_fnam__ ( char *  fno,
CurvPrcv prc 
)
int PRCV_fsiz__ ( CurvPrcv prc)
int PRCV_rdf__ ( CurvPrcv prc)
* read PRCV from file "[M<subModelNr>]S<curve#>.odat"
* Memspace for points, params is mallocd, if not provided with PRCV_memspc_ini
* If Malloced: MUST BE FREED WITH PRCV_rdf_free !
* Input:
* prc->typ
* prc->dbi
* prc->mdli
* Output:
* retCod 0 OK; MUST PRCV_rdf_free()
* -1 file not found
*
* ofid (objectfile-id) subModelNr [M<subModelNr>]S<curve#>.odat
*
int PRCV_rdf_free ( CurvPrcv prc)
int PRCV_dump_dbo ( int  mode,
int  dbTyp,
long  dbi 
)
int PRCV_dump_1 ( int  ii,
CurvPrcv prc 
)
int PRCV_dump__ ( int  mode,
CurvPrcv prc,
char *  txt 
)
int PRCV_npt_trmCv ( Point **  pta,
int *  ptNr,
CurvCCV ccv1 
)

Variable Documentation

int WC_modact_ind
CurvPrcv PRCV0 = _PRCV_NUL
static