00001 #ifndef __aycore_h__
00002 #define __aycore_h__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00022 int ay_bbc_get(ay_object *o, double *bbox);
00023
00026 int ay_bbc_fromarr(double *arr, int len, int stride, double *bbox);
00027
00030 int ay_bbc_fromlist(ay_object *o, int update, double *bbox);
00031
00034 int ay_bbc_gettcmd(ClientData clientData, Tcl_Interp *interp,
00035 int argc, char *argv[]);
00036
00037
00038
00041 int ay_clear_scene(void);
00042
00045 int ay_clear_scenetcmd(ClientData clientData, Tcl_Interp *interp,
00046 int argc, char *argv[]);
00047
00048
00049
00050
00053 void ay_clevel_set(ay_object *o);
00054
00057 int ay_clevel_find(ay_object *c, ay_object *o, int *found);
00058
00061 int ay_clevel_add(ay_object *o);
00062
00065 void ay_clevel_del(void);
00066
00069 void ay_clevel_delall(void);
00070
00073 void ay_clevel_gotop(void);
00074
00077 int ay_clevel_gotoptcmd(ClientData clientData, Tcl_Interp *interp,
00078 int argc, char *argv[]);
00079
00082 int ay_clevel_gouptcmd(ClientData clientData, Tcl_Interp *interp,
00083 int argc, char *argv[]);
00084
00088 int ay_clevel_godowntcmd(ClientData clientData, Tcl_Interp *interp,
00089 int argc, char *argv[]);
00090
00093 int ay_clevel_gettcmd(ClientData clientData, Tcl_Interp *interp,
00094 int argc, char *argv[]);
00095
00098 int ay_clevel_cltcmd(ClientData clientData, Tcl_Interp *interp,
00099 int argc, char *argv[]);
00100
00103 int ay_clevel_getparentpatch(ay_object **p);
00104
00107 int ay_clevel_getparentbounds(double *uvmm);
00108
00109
00110
00111
00114 int ay_clipb_clear(char *fname);
00115
00118 int ay_clipb_cleartcmd(ClientData clientData, Tcl_Interp *interp,
00119 int argc, char *argv[]);
00120
00123 int ay_clipb_copytcmd(ClientData clientData, Tcl_Interp *interp,
00124 int argc, char *argv[]);
00125
00128 int ay_clipb_cuttcmd(ClientData clientData, Tcl_Interp *interp,
00129 int argc, char *argv[]);
00130
00133 int ay_clipb_pastetcmd(ClientData clientData, Tcl_Interp *interp,
00134 int argc, char *argv[]);
00135
00139 int ay_clipb_replacetcmd(ClientData clientData, Tcl_Interp *interp,
00140 int argc, char *argv[]);
00141
00144 int ay_clipb_hmovtcmd(ClientData clientData, Tcl_Interp *interp,
00145 int argc, char *argv[]);
00146
00149 void ay_clipb_prepend(ay_object *o, char *fname);
00150
00151
00152
00153
00156 int ay_comp_strcase(const char *s1, const char *s2);
00157
00160 int ay_comp_register(ay_comparecb *compcb, unsigned int type_id);
00161
00164 int ay_comp_init(void);
00165
00168 int ay_comp_objects(ay_object *o1, ay_object *o2);
00169
00172 int ay_comp_trafos(ay_object *o1, ay_object *o2);
00173
00176 int ay_comp_tags(ay_object *o1, ay_object *o2);
00177
00178
00179
00180
00183 int ay_convert_register(ay_convertcb *convcb, unsigned int type_id);
00184
00187 int ay_convert_object(ay_object *o, int in_place);
00188
00191 int ay_convert_objecttcmd(ClientData clientData, Tcl_Interp *interp,
00192 int argc, char *argv[]);
00193
00196 int ay_convert_nptoolobj(ay_object *o, ay_object *p, ay_object *cb,
00197 int in_place);
00198
00201 int ay_convert_nptoolobjwithholes(ay_object *o, ay_object *p, ay_object *cb,
00202 int in_place);
00203
00204
00205
00206
00209 void ay_draw_object(struct Togl *togl, ay_object *o, int selected);
00210
00213 int ay_draw_view(struct Togl *togl, int draw_offset);
00214
00217 void ay_draw_grid(struct Togl *togl);
00218
00221 void ay_draw_arrow(struct Togl *togl, double *from, double *to);
00222
00225 void ay_draw_bgimage(struct Togl *togl);
00226
00229 void ay_draw_needredraw(ay_list_object *oldsel, ay_list_object *newsel,
00230 int *result);
00231
00234 void ay_draw_trimview(ay_view_object *view);
00235
00238 void ay_draw_rectangle(int winwidth, int winheight,
00239 double xmin, double ymin,
00240 double xmax, double ymax);
00241
00244 void ay_draw_cs(struct Togl *togl, int mode);
00245
00248 void ay_draw_mark(struct Togl *togl);
00249
00252 int ay_draw_registerdacb(ay_drawcb *dacb, unsigned int type_id);
00253
00256 void ay_draw_silhouettes(struct Togl *togl, unsigned char *silimg);
00257
00260 void ay_draw_selmp(ay_object *o, int is_rat, ay_mpoint *mp);
00261
00264 void ay_draw_rhombus(double *pnt);
00265
00268 void ay_draw_linestrip(struct Togl *togl, int n, int stride, double *cv);
00269
00272 void ay_draw_axis(struct Togl *togl, int axis);
00273
00274
00275
00276
00279 void ay_error(int code, const char *where, const char *what);
00280
00283 int ay_error_tcmd(ClientData clientData, Tcl_Interp *interp,
00284 int argc, char *argv[]);
00285
00288 int ay_error_openlog(void);
00289
00292 int ay_error_closelog(void);
00293
00296 void ay_error_writelog(char *message);
00297
00300 int ay_error_logtcmd(ClientData clientData, Tcl_Interp *interp,
00301 int argc, char *argv[]);
00302
00305 int ay_error_outtcmd(ClientData clientData, Tcl_Interp *interp,
00306 int argc, char *argv[]);
00307
00310 void ay_error_glucb(GLenum err);
00311
00314 int ay_error_reportdrange(char *fname, char *pname, double lb, double ub);
00315
00318 int ay_error_reportirange(char *fname, char *pname, int lb, int ub);
00319
00322 int ay_error_reportobject(int ecode, char *fname, ay_object *o);
00323
00326 void ay_error_reportnan(char *fname, char *pname);
00327
00330 int ay_error_printglerrortcmd(ClientData clientData, Tcl_Interp *interp,
00331 int argc, char *argv[]);
00332
00333
00334
00335
00338 int ay_geom_intersectlines3D(double *p1, double *t1,
00339 double *p2, double *t2,
00340 double *p);
00341
00344 int ay_geom_intersectlines2D(double *p1, double *t1,
00345 double *p2, double *t2,
00346 double *p);
00347
00350 void ay_geom_pointstoplane(double x1, double y1, double z1,
00351 double x2, double y2, double z2,
00352 double x3, double y3, double z3,
00353 double *A, double *B, double *C, double *D);
00354
00357 void ay_geom_normalfrom3pnts(double *p1, double *p2, double *p3, double *n);
00358
00361 void ay_geom_normalfrom4pnts(double *p1, double *p2, double *p3, double *p4,
00362 double *n);
00363
00366 int ay_geom_extractmiddlepoint(int mode, double *cv, int cvlen, int cvstride,
00367 double **tcv, double *result);
00368
00371 int ay_geom_extractmeannormal(double *cv, int cvlen, int cvstride,
00372 double *m, double *result);
00373
00376 void ay_geom_scalecog(double scale, double *cv, int len, int stride);
00377
00380 int ay_geom_computecccenter(double *A, double *B, double *C, double *c);
00381
00382
00383
00384
00387 int ay_instt_createoidht(ay_object *o);
00388
00391 void ay_instt_connect(ay_object *o, ay_object **last);
00392
00395 int ay_instt_createoid(char **dest);
00396
00399 int ay_instt_createorigids(ay_object *o);
00400
00403 int ay_instt_createinstanceids(ay_object *o);
00404
00407 int ay_instt_clearoidtags(ay_object *o);
00408
00411 void ay_instt_removeinstances(ay_object **o, ay_object *m);
00412
00415 void ay_instt_clearclipboard(ay_object *o);
00416
00419 int ay_instt_wribiarchives(char *file, ay_object *o);
00420
00423 int ay_instt_resolvetcmd(ClientData clientData, Tcl_Interp *interp,
00424 int argc, char *argv[]);
00425
00428 int ay_instt_checkinstance(ay_object *o, ay_object *target,
00429 ay_object *instance, int *check_this_tree);
00430
00433 int ay_instt_check(ay_object *o, ay_object *target);
00434
00437 int ay_instt_getmastertcmd(ClientData clientData, Tcl_Interp *interp,
00438 int argc, char *argv[]);
00439
00442 void ay_instt_countrefs(ay_object *o, ay_object *m, unsigned int *refs);
00443
00446 void ay_instt_countrefslist(ay_list_object *l, ay_object *m,
00447 unsigned int *refs);
00448
00451 void ay_instt_init(Tcl_Interp *interp);
00452
00453
00454
00455
00458 int ay_interpol_2DA4DIC(ay_nurbpatch_object *np, int w, int h,
00459 double *st, double *en, double *ta);
00460
00463 int ay_interpol_1DA4DIC(ay_nurbcurve_object *nc, int len, double *st,
00464 double *en, double *ta);
00465
00468 int ay_interpol_1DA4D(double p, int len, double *st, double *en, double *ta);
00469
00472 int ay_interpol_1DA1D(double p, int len, double *st, double *en, double *ta);
00473
00476 void ay_interpol_trafos(double p, ay_object *o1, ay_object *o2, ay_object *ta);
00477
00480 int ay_interpol_ncurves(double p, ay_object *c1, ay_object *c2, ay_object *ic,
00481 ay_object **ta);
00482
00485 int ay_interpol_curvestcmd(ClientData clientData, Tcl_Interp *interp,
00486 int argc, char *argv[]);
00487
00488
00491 int ay_interpol_npatches(double r, ay_object *p1, ay_object *p2,
00492 ay_object *ic, ay_object **ta);
00493
00496 int ay_interpol_surfacestcmd(ClientData clientData, Tcl_Interp *interp,
00497 int argc, char *argv[]);
00498
00499
00500
00501
00504 int ay_notify_register(ay_notifycb *notcb, unsigned int type_id);
00505
00508 int ay_notify_parent(void);
00509
00512 int ay_notify_object(ay_object *o);
00513
00516 int ay_notify_parentof(ay_object *o, int silent);
00517
00520 int ay_notify_objecttcmd(ClientData clientData, Tcl_Interp *interp,
00521 int argc, char *argv[]);
00522
00525 int ay_notify_findparents(ay_object *o, ay_object *r,
00526 ay_list_object **parents);
00527
00530 int ay_notify_complete(ay_object *r);
00531
00534 void ay_notify_block(int scope, int block);
00535
00538 int ay_notify_objectsafetcmd(ClientData clientData, Tcl_Interp *interp,
00539 int argc, char *argv[]);
00540
00541
00542
00545 Tk_RestrictAction ay_ns_restrictall(ClientData clientData,
00546 XEvent *eventPtr);
00547
00550 void ay_ns_execute(ay_object *o, ay_tag *tag);
00551
00554 int ay_ns_disable(ay_tag *tag);
00555
00558 void ay_ns_init(Tcl_Interp *interp);
00559
00560
00561
00562
00565 int ay_oact_parseargs(struct Togl *togl, int argc, char *argv[], char *fname,
00566 double *winx, double *winy,
00567 double *owinx, double *owiny);
00568
00571 int ay_oact_movetcb(struct Togl *togl, int argc, char *argv[]);
00572
00575 int ay_oact_rottcb(struct Togl *togl, int argc, char *argv[]);
00576
00579 int ay_oact_rotatcb(struct Togl *togl, int argc, char *argv[]);
00580
00583 int ay_oact_sc1DXcb(struct Togl *togl, int argc, char *argv[]);
00584
00587 int ay_oact_sc1DXAcb(struct Togl *togl, int argc, char *argv[]);
00588
00591 int ay_oact_sc1DYcb(struct Togl *togl, int argc, char *argv[]);
00592
00595 int ay_oact_sc1DYAcb(struct Togl *togl, int argc, char *argv[]);
00596
00599 int ay_oact_sc1DZcb(struct Togl *togl, int argc, char *argv[]);
00600
00603 int ay_oact_sc1DZAcb(struct Togl *togl, int argc, char *argv[]);
00604
00607 int ay_oact_sc2Dcb(struct Togl *togl, int argc, char *argv[]);
00608
00611 int ay_oact_sc3Dcb(struct Togl *togl, int argc, char *argv[]);
00612
00615 int ay_oact_str2Dcb(struct Togl *togl, int argc, char *argv[]);
00616
00619 int ay_oact_sc2DAcb(struct Togl *togl, int argc, char *argv[]);
00620
00623 int ay_oact_str2DAcb(struct Togl *togl, int argc, char *argv[]);
00624
00627 int ay_oact_sc3DAcb(struct Togl *togl, int argc, char *argv[]);
00628
00629
00630
00631
00634 void ay_object_defaults(ay_object *o);
00635
00638 void ay_object_place(ay_object *o, int place_at);
00639
00642 void ay_object_align(ay_object *o, int align_to);
00643
00646 int ay_object_placetcmd(ClientData clientData, Tcl_Interp *interp,
00647 int argc, char *argv[]);
00648
00651 int ay_object_aligntcmd(ClientData clientData, Tcl_Interp *interp,
00652 int argc, char *argv[]);
00653
00656 int ay_object_create(unsigned int index, ay_object **o);
00657
00660 int ay_object_createargs(unsigned int index, int argc, char **argv,
00661 ay_object **o);
00662
00665 int ay_object_createtcmd(ClientData clientData, Tcl_Interp *interp,
00666 int argc, char *argv[]);
00667
00670 int ay_object_delete(ay_object *o);
00671
00674 int ay_object_deletemulti(ay_object *o, int force);
00675
00678 int ay_object_deletetcmd(ClientData clientData, Tcl_Interp *interp,
00679 int argc, char *argv[]);
00680
00683 void ay_object_link(ay_object *o);
00684
00687 void ay_object_unlink(ay_object *o);
00688
00691 char *ay_object_gettypename(unsigned int index);
00692
00693
00696 char *ay_object_getname(ay_object *o);
00697
00700 int ay_object_setnametcmd(ClientData clientData, Tcl_Interp *interp,
00701 int argc, char *argv[]);
00702
00705 int ay_object_copy(ay_object *src, ay_object **dst);
00706
00709 int ay_object_copymulti(ay_object *src, ay_object **dst);
00710
00713 int ay_object_ishastcmd(ClientData clientData, Tcl_Interp *interp,
00714 int argc, char *argv[]);
00715
00718 int ay_object_gettypetcmd(ClientData clientData, Tcl_Interp *interp,
00719 int argc, char *argv[]);
00720
00723 int ay_object_getnametcmd(ClientData clientData, Tcl_Interp *interp,
00724 int argc, char *argv[]);
00725
00728 int ay_object_crtendlevel(ay_object **o);
00729
00732 int ay_object_replace(ay_object *src, ay_object *dst);
00733
00736 unsigned int ay_object_count(ay_object *o);
00737
00740 int ay_object_candelete(ay_object *p, ay_object *o);
00741
00744 int ay_object_candeletelist(ay_list_object *l, ay_object *o);
00745
00748 int ay_object_getpathname(ay_object *o, ay_object *h,
00749 size_t *totallen, int *found, char **result);
00750
00753 int ay_object_find(ay_object *o, ay_object *h);
00754
00755
00756
00757
00760 int ay_otype_registercore(char *name,
00761 ay_createcb *crtcb,
00762 ay_deletecb *delcb,
00763 ay_copycb *copycb,
00764 ay_drawcb *drawcb,
00765 ay_drawcb *drawhcb,
00766 ay_drawcb *shadecb,
00767 ay_propcb *setpropcb,
00768 ay_propcb *getpropcb,
00769 ay_getpntcb *getpntcb,
00770 ay_readcb *readcb,
00771 ay_writecb *writecb,
00772 ay_wribcb *wribcb,
00773 ay_bbccb *bbccb,
00774 unsigned int type_index);
00775
00778 int ay_otype_register(char *name,
00779 ay_createcb *crtcb,
00780 ay_deletecb *delcb,
00781 ay_copycb *copycb,
00782 ay_drawcb *drawcb,
00783 ay_drawcb *drawhcb,
00784 ay_drawcb *shadecb,
00785 ay_propcb *setpropcb,
00786 ay_propcb *getpropcb,
00787 ay_getpntcb *getpntcb,
00788 ay_readcb *readcb,
00789 ay_writecb *writecb,
00790 ay_wribcb *wribcb,
00791 ay_bbccb *bbccb,
00792 unsigned int *type_index);
00793
00796 unsigned int *ay_otype_getpointer(unsigned int id);
00797
00800 int ay_otype_init();
00801
00802
00803
00804
00807 void ay_matt_init(Tcl_Interp *interp);
00808
00811 int ay_matt_registermaterial(char *name, ay_mat_object *mat);
00812
00815 int ay_matt_deregister(char *name);
00816
00819 int ay_matt_getmaterial(char *name, ay_mat_object **material);
00820
00823 void ay_matt_removeallrefs(ay_object *o);
00824
00827 void ay_matt_removerefs(ay_object *o, ay_mat_object *material);
00828
00831 void ay_matt_removecliprefs(ay_object *o);
00832
00835 void ay_matt_connect(ay_object *o);
00836
00839 int ay_matt_creatematerialids(ay_object *o);
00840
00843 int ay_matt_clearmaterialids(ay_object *o);
00844
00847 int ay_matt_wrib(ay_object *o);
00848
00851 void ay_matt_nomaterial(unsigned int type);
00852
00855 int ay_matt_mayhavematerial(unsigned int type);
00856
00859 void ay_matt_clearshaders(ay_mat_object *material);
00860
00863 int ay_matt_getregisteredtcmd(ClientData clientData, Tcl_Interp *interp,
00864 int argc, char *argv[]);
00865
00868 int ay_matt_set(char *matname, ay_object *o);
00869
00870
00871
00872
00875 void ay_pact_clearpointedit(ay_pointedit *pe);
00876
00879 double ay_pact_getminlevelscale();
00880
00883 int ay_pact_getpoint(int mode, ay_object *o, double *obj, ay_pointedit *pe);
00884
00887 int ay_pact_pickpoint(ay_object *o, ay_view_object *view,
00888 double minlevelscale, double *obj, ay_pointedit *pe);
00889
00892 int ay_pact_seltcb(struct Togl *togl, int argc, char *argv[]);
00893
00896 int ay_pact_selboundtcb(struct Togl *togl, int argc, char *argv[]);
00897
00900 int ay_pact_insertptcb(struct Togl *togl, int argc, char *argv[]);
00901
00904 int ay_pact_deleteptcb(struct Togl *togl, int argc, char *argv[]);
00905
00908 int ay_pact_startpetcb(struct Togl *togl, int argc, char *argv[]);
00909
00912 int ay_pact_pentcb(struct Togl *togl, int argc, char *argv[]);
00913
00916 void ay_pact_griddify(double *n, double grid);
00917
00920 void ay_pact_flashpoint(int ignore_old, int multiple, double *pnt, ay_object *o);
00921
00924 int ay_pact_petcb(struct Togl *togl, int argc, char *argv[]);
00925
00928 int ay_pact_wetcb(struct Togl *togl, int argc, char *argv[]);
00929
00932 int ay_pact_wrtcb(struct Togl *togl, int argc, char *argv[]);
00933
00936 int ay_pact_snaptogridcb(struct Togl *togl, int argc, char *argv[]);
00937
00940 int ay_pact_snaptomarkcb(struct Togl *togl, int argc, char *argv[]);
00941
00944 int ay_pact_multiptcb(struct Togl *togl, int argc, char *argv[]);
00945
00948 int ay_pact_insertac(ay_acurve_object *curve, int *index,
00949 double *objXYZ, int edit);
00950
00953 int ay_pact_insertnc(ay_nurbcurve_object *curve, int *index,
00954 double *objXYZ, int edit);
00955
00958 int ay_pact_deleteac(ay_acurve_object *acurve, int *index,
00959 double *objXYZ);
00960
00963 int ay_pact_deletenc(ay_nurbcurve_object *curve, int *index, double *objXYZ);
00964
00967 int ay_pact_registerinsert(ay_inspntcb *inscb, unsigned int type_id);
00968
00971 int ay_pact_registerdelete(ay_delpntcb *delcb, unsigned int type_id);
00972
00975 int ay_pact_init(Tcl_Interp *interp);
00976
00977
00978
00979
00982 int ay_peek_register(ay_peekcb *peekcb, unsigned int type_id);
00983
00986 ay_object *ay_peek_singleobject(ay_object *o, unsigned int type);
00987
00990 int ay_peek_object(ay_object *o, unsigned int type, ay_object ***objrefs,
00991 double **transforms);
00992
00995 int ay_peek_settag(ay_object *o, ay_object *p);
00996
00997
00998
00999
01002 int ay_pomesht_destroy(ay_pomesh_object *pomesh);
01003
01006 int ay_pomesht_tesselate(ay_pomesh_object *pomesh);
01007
01010 int ay_pomesht_tesselatesel(ay_pomesh_object *pomesh);
01011
01014 int ay_pomesht_merge(int merge_pv_tags, ay_list_object *list,
01015 ay_object **result);
01016
01019 int ay_pomesht_mergetcmd(ClientData clientData, Tcl_Interp *interp,
01020 int argc, char *argv[]);
01021
01024 int ay_pomesht_optimizecoords(ay_pomesh_object *pomesh, double normal_epsilon,
01025 ay_point *selp,
01026 unsigned int *ois, unsigned int *oislen);
01027
01030 int ay_pomesht_optimizetcmd(ClientData clientData, Tcl_Interp *interp,
01031 int argc, char *argv[]);
01032
01035 int ay_pomesht_tosdmesh(ay_pomesh_object *pomesh, ay_sdmesh_object **sdmesh);
01036
01039 int ay_pomesht_splitface(ay_pomesh_object *pomesh, unsigned int f,
01040 ay_pomesh_object *target);
01041
01044 int ay_pomesht_split(ay_pomesh_object *pomesh,
01045 ay_pomesh_object **result);
01046
01049 int ay_pomesht_splittcmd(ClientData clientData, Tcl_Interp *interp,
01050 int argc, char *argv[]);
01051
01054 int ay_pomesht_genfacenormals(ay_pomesh_object *po, double **result);
01055
01058 int ay_pomesht_gensmoothnormals(ay_pomesh_object *po, double **result);
01059
01062 int ay_pomesht_remsmoothnormals(ay_pomesh_object *po);
01063
01067 int ay_pomesht_gennormtcmd(ClientData clientData, Tcl_Interp *interp,
01068 int argc, char *argv[]);
01069
01072 void ay_pomesht_fliploops(ay_pomesh_object *po);
01073
01076 void ay_pomesht_flipnormals(ay_pomesh_object *po);
01077
01080 int ay_pomesht_connecttcmd(ClientData clientData, Tcl_Interp *interp,
01081 int argc, char *argv[]);
01082
01085 int ay_pomesht_selectbound(ay_pomesh_object *po, ay_point *selp);
01086
01089 int ay_pomesht_applytrafo(ay_object *o);
01090
01093 int ay_pomesht_hasonlyngons(ay_pomesh_object *po, unsigned int n);
01094
01097 int ay_pomesht_quadrangulatetcmd(ClientData clientData, Tcl_Interp *interp,
01098 int argc, char *argv[]);
01099
01102 int ay_pomesht_selectface(ay_object *o, unsigned int face, int mode);
01103
01106 int ay_pomesht_pickfacecb(struct Togl *togl, int argc, char *argv[]);
01107
01110 int ay_pomesht_drawself(struct Togl *togl, ay_object *o);
01111
01114 int ay_pomesht_selfacetcmd(ClientData clientData, Tcl_Interp *interp,
01115 int argc, char *argv[]);
01116
01117
01118
01119
01122 int ay_prefs_gettcmd(ClientData clientData, Tcl_Interp *interp,
01123 int argc, char *argv[]);
01124
01127 int ay_prefs_settcmd(ClientData clientData, Tcl_Interp *interp,
01128 int argc, char *argv[]);
01129
01130
01131
01132
01135 int ay_prop_gettcmd(ClientData clientData, Tcl_Interp *interp,
01136 int argc, char *argv[]);
01137
01140 int ay_prop_settcmd(ClientData clientData, Tcl_Interp *interp,
01141 int argc, char *argv[]);
01142
01145 int ay_prop_gettrafotcmd(ClientData clientData, Tcl_Interp *interp,
01146 int argc, char *argv[]);
01147
01150 int ay_prop_settrafotcmd(ClientData clientData, Tcl_Interp *interp,
01151 int argc, char *argv[]);
01152
01155 int ay_prop_getattrtcmd(ClientData clientData, Tcl_Interp *interp,
01156 int argc, char *argv[]);
01157
01160 int ay_prop_setattrtcmd(ClientData clientData, Tcl_Interp *interp,
01161 int argc, char *argv[]);
01162
01165 int ay_prop_getmattcmd(ClientData clientData, Tcl_Interp *interp,
01166 int argc, char *argv[]);
01167
01170 int ay_prop_setmattcmd(ClientData clientData, Tcl_Interp *interp,
01171 int argc, char *argv[]);
01172
01175 int ay_prop_getnpinfo(Tcl_Interp *interp, char *n1, ay_object *o);
01176
01179 int ay_prop_getncinfo(Tcl_Interp *interp, char *n1, ay_object *o);
01180
01183 int ay_prop_parseexpression(Tcl_Obj *to, char *fname, double oldval,
01184 double *newval);
01185
01186
01187
01188
01191 int ay_provide_register(ay_providecb *provcb, unsigned int type_id);
01192
01195 int ay_provide_object(ay_object *o, unsigned int type, ay_object **result);
01196
01199 int ay_provide_nptoolobj(ay_object *o, unsigned int type,
01200 ay_object *npatch, ay_object *cb,
01201 ay_object **result);
01202
01203
01204
01205
01208 int ay_pv_filltokpar(ay_object *o, int declare, int start,
01209 int *added, RtToken tokens[], RtPointer parms[]);
01210
01213 int ay_pv_add(ay_object *o,
01214 const char *name, const char *detail, const char *type,
01215 int datalen, int stride, void *data);
01216
01219 int ay_pv_merge(ay_tag *t1, ay_tag *t2, ay_tag **mt);
01220
01223 int ay_pv_mergeinto(ay_tag *t1, ay_tag *t2);
01224
01227 int ay_pv_cmpndt(ay_tag *t1, ay_tag *t2);
01228
01231 int ay_pv_checkndt(ay_tag *t, const char *name, const char *detail,
01232 const char *type);
01233
01236 int ay_pv_getdetail(ay_tag *t, char **detail);
01237
01240 int ay_pv_gettype(ay_tag *t);
01241
01244 int ay_pv_convert(ay_tag *tag, int type, unsigned int *datalen, void **data);
01245
01248 int ay_pv_getst(ay_object *o, char *mys, char *myt, int type, void **data,
01249 unsigned int *datalen);
01250
01253 int ay_pv_getvc(ay_object *o, char *myc, int stride,
01254 unsigned int *datalen, void **data);
01255
01258 int ay_pv_count(ay_object *o);
01259
01262 void ay_pv_fixnumelems(char *buf, unsigned int numelems);
01263
01266 void ay_pv_init(Tcl_Interp *interp);
01267
01268
01269
01270
01273 void ay_quat_axistoquat(double a[3], double phi, double q[4]);
01274
01277 void ay_quat_norm(double q[4]);
01278
01281 void ay_quat_add(double q1[4], double q2[4], double dest[4]);
01282
01285 void ay_quat_torotmatrix(double q[4], double m[16]);
01286
01289 void ay_quat_toeuler(double q[4], double euler[3]);
01290
01293 void ay_quat_slerp(double t, double q1[4], double q2[4], double r[4]);
01294
01297 double ay_quat_dot(double q1[4], double q2[4]);
01298
01301 void ay_quat_inv(double q[4]);
01302
01303
01304
01305
01308 int ay_read_string(FILE *fileptr, char **result);
01309
01312 int ay_read_unistring(FILE *fileptr, Tcl_UniChar **result);
01313
01316 int ay_read_skip(FILE *fileptr);
01317
01320 int ay_read_header(FILE *fileptr);
01321
01324 int ay_read_attributes(FILE *fileptr, ay_object *o);
01325
01328 int ay_read_tags(FILE *fileptr, ay_object *o);
01329
01332 int ay_read_shader(FILE *fileptr, ay_shader **result);
01333
01336 int ay_read_object(FILE *fileptr);
01337
01340 int ay_read_scene(Tcl_Interp *interp, char *filename, int insert);
01341
01344 int ay_read_replacetcmd(ClientData clientData, Tcl_Interp *interp,
01345 int argc, char *argv[]);
01346
01349 int ay_read_inserttcmd(ClientData clientData, Tcl_Interp *interp,
01350 int argc, char *argv[]);
01351
01352
01353
01354
01357 int ay_riattr_wrib(ay_object *o);
01358
01361 void ay_riattr_init(Tcl_Interp *interp);
01362
01363
01364
01365
01368 int ay_riopt_wrib(ay_object *o);
01369
01372 void ay_riopt_init(Tcl_Interp *interp);
01373
01374
01375
01376
01379 int ay_sdmesht_tesselate(ay_sdmesh_object *sdmesh);
01380
01383 int ay_sdmesht_topolymesh(ay_sdmesh_object *sdmesh, ay_pomesh_object **pomesh);
01384
01385
01386
01387
01390 void ay_sel_free(int clear_selflag);
01391
01394 int ay_sel_add(ay_object *o, int set_selflag);
01395
01398 int ay_sel_selobtcmd(ClientData clientData, Tcl_Interp *interp,
01399 int argc, char *argv[]);
01400
01403 int ay_sel_getseltcmd(ClientData clientData, Tcl_Interp *interp,
01404 int argc, char *argv[]);
01405
01408 int ay_sel_hsltcmd(ClientData clientData, Tcl_Interp *interp,
01409 int argc, char *argv[]);
01410
01413 int ay_sel_hsptcmd(ClientData clientData, Tcl_Interp *interp,
01414 int argc, char *argv[]);
01415
01418 void ay_sel_clearselflag(ay_object *o);
01419
01422 void ay_sel_clean();
01423
01424
01425
01426
01429 void ay_selp_clear(ay_object *o);
01430
01433 void ay_selp_copy(ay_point *pnt, ay_point **res);
01434
01437 int ay_selp_selall(ay_object *o);
01438
01441 int ay_selp_applytrafotcmd(ClientData clientData, Tcl_Interp *interp,
01442 int argc, char *argv[]);
01443
01446 int ay_selp_invert(ay_object *o);
01447
01450 int ay_selp_inverttcmd(ClientData clientData, Tcl_Interp *interp,
01451 int argc, char *argv[]);
01452
01455 int ay_selp_center(ay_point *p, int dim, double *center);
01456
01459 int ay_selp_getcenter(ay_point *p, int mode, double *center);
01460
01463 int ay_selp_centertcmd(ClientData clientData, Tcl_Interp *interp,
01464 int argc, char *argv[]);
01465
01468 int ay_selp_sel(ay_object *o, unsigned int indiceslen, unsigned int *indices);
01469
01472 int ay_selp_seltcmd(ClientData clientData, Tcl_Interp *interp,
01473 int argc, char *argv[]);
01474
01477 int ay_selp_rem(ay_object *o, unsigned int index);
01478
01481 int ay_selp_ins(ay_object *o, unsigned int index);
01482
01485 int ay_selp_getpnts(int mode, ay_object *o, double *p, ay_pointedit *pe,
01486 int readonly, int arrlen, int stride, int ishom,
01487 double *arr);
01488
01491 void ay_selp_selectmpnc(ay_object *o, int select_all);
01492
01495 void ay_selp_normalize(ay_object *o, int digits);
01496
01500 int ay_selp_collapsetcmd(ClientData clientData, Tcl_Interp *interp,
01501 int argc, char *argv[]);
01502
01506 int ay_selp_explodetcmd(ClientData clientData, Tcl_Interp *interp,
01507 int argc, char *argv[]);
01508
01511 void ay_selp_managelist(ay_object *o, unsigned int *lenptr, double **pntsptr);
01512
01515 int ay_selp_reducetominmax(ay_object *o);
01516
01519 void ay_selp_updatempselection(unsigned int n, ay_point *selp, ay_mpoint *mp);
01520
01523 int ay_selp_find(ay_point *selp, double *point);
01524
01525
01526
01527
01530 void ay_shade_object(struct Togl *togl, ay_object *o, int push_name);
01531
01534 int ay_shade_view(struct Togl *togl);
01535
01536
01537
01538
01539 #ifdef AYUSESLCARGS
01540
01542 int ay_shader_scanslcsarg(SLC_VISSYMDEF *symbol, Tcl_DString *ds);
01543 #endif
01544
01545
01548 int ay_shader_scanslctcmd(ClientData clientData, Tcl_Interp *interp,
01549 int argc, char *argv[]);
01550 #ifdef AYUSESLXARGS
01551
01553 int ay_shader_scanslxsarg(SLX_VISSYMDEF *symbol, Tcl_DString *ds);
01554 #endif
01555
01558 int ay_shader_scanslxtcmd(ClientData clientData, Tcl_Interp *interp,
01559 int argc, char *argv[]);
01560
01563 void ay_shader_free(ay_shader *shader);
01564
01567 int ay_shader_copyarg(ay_shader_arg *source, ay_shader_arg **dest);
01568
01571 int ay_shader_copy(ay_shader *source, ay_shader **dest);
01572
01575 int ay_shader_wrib(ay_shader *shader, int type, RtLightHandle *light_handle);
01576
01579 int ay_shader_gettcmd(ClientData clientData, Tcl_Interp *interp,
01580 int argc, char *argv[]);
01581
01584 int ay_shader_settcmd(ClientData clientData, Tcl_Interp *interp,
01585 int argc, char *argv[]);
01586
01589 int ay_shader_renameforpv(ay_object *o, ay_shader *shader);
01590
01593 void ay_shader_restorename(ay_object *o, ay_shader *shader);
01594
01595
01596
01597
01600 int ay_table_initftable(ay_ftable *table);
01601
01604 int ay_table_addcallback(ay_ftable *table, ay_voidfp newitem, unsigned int index);
01605
01608 int ay_table_init(ay_otable *table);
01609
01612 int ay_table_additem(ay_otable *table, void *newitem, unsigned int index);
01613
01614
01615
01616
01619 void ay_tags_delall(ay_object *o);
01620
01623 void ay_tags_delete(ay_object *o, unsigned int type);
01624
01627 void ay_tags_free(ay_tag *tag);
01628
01631 int ay_tags_copy(ay_tag *source, ay_tag **dest);
01632
01635 int ay_tags_copyall(ay_object *src, ay_object *dst);
01636
01639 void ay_tags_append(ay_object *o, ay_tag *tag);
01640
01643 int ay_tags_register(char *name, unsigned int *result);
01644
01647 int ay_tags_settcmd(ClientData clientData, Tcl_Interp *interp,
01648 int argc, char *argv[]);
01649
01652 int ay_tags_addtcmd(ClientData clientData, Tcl_Interp *interp,
01653 int argc, char *argv[]);
01654
01657 int ay_tags_gettcmd(ClientData clientData, Tcl_Interp *interp,
01658 int argc, char *argv[]);
01659
01662 int ay_tags_hastag(const ay_object *o, const unsigned int tagtype);
01663
01666 int ay_tags_hastcmd(ClientData clientData, Tcl_Interp *interp,
01667 int argc, char *argv[]);
01668
01671 void ay_tags_getfirst(const ay_object *o, const unsigned int tagtype,
01672 ay_tag **result);
01673
01676 int ay_tags_deletetcmd(ClientData clientData, Tcl_Interp *interp,
01677 int argc, char *argv[]);
01678
01681 int ay_tags_parseplist(char *str, int declare, RtInt *argc, RtToken **tokensr,
01682 RtPointer **valuesr);
01683
01686 void ay_tags_reconnect(ay_object *o, unsigned int tagtype, char *tagname);
01687
01690 int ay_tags_addnonm(ay_object *o, ay_object *m);
01691
01694 void ay_tags_remnonm(ay_object *o, ay_object *m);
01695
01698 int ay_tags_copyselected(ay_object *src, ay_object *dst,
01699 unsigned int *types, int typeslen);
01700
01703 void ay_tags_nltovt(char *str);
01704
01707 void ay_tags_vttonl(char *str);
01708
01710 int ay_tags_registertcmd(ClientData clientData, Tcl_Interp *interp,
01711 int argc, char *argv[]);
01712
01713
01714
01715
01718 int ay_tc_wrib(ay_object *o);
01719
01722 void ay_tc_init(Tcl_Interp *interp);
01723
01724
01725
01726
01729 int ay_tcmd_convdlist(Tcl_Interp *interp, char *vname, int *dllen, double **dl);
01730
01733 int ay_tcmd_reverttcmd(ClientData clientData, Tcl_Interp *interp,
01734 int argc, char *argv[]);
01735
01738 void ay_tcmd_showhideall(ay_object *o, int val);
01739
01742 int ay_tcmd_showhidetcmd(ClientData clientData, Tcl_Interp *interp,
01743 int argc, char *argv[]);
01744
01747 int ay_tcmd_getversionstcmd(ClientData clientData, Tcl_Interp *interp,
01748 int argc, char *argv[]);
01749
01752 int ay_tcmd_getbppntfromindex(ay_bpatch_object *patch, int index,
01753 double **p);
01754
01757 int ay_tcmd_getpointtcmd(ClientData clientData, Tcl_Interp *interp,
01758 int argc, char *argv[]);
01759
01762 int ay_tcmd_getnormaltcmd(ClientData clientData, Tcl_Interp *interp,
01763 int argc, char *argv[]);
01764
01767 int ay_tcmd_gettangenttcmd(ClientData clientData, Tcl_Interp *interp,
01768 int argc, char *argv[]);
01769
01772 int ay_tcmd_setpointtcmd(ClientData clientData, Tcl_Interp *interp,
01773 int argc, char *argv[]);
01774
01777 int ay_tcmd_setnormaltcmd(ClientData clientData, Tcl_Interp *interp,
01778 int argc, char *argv[]);
01779
01780 #ifdef AYENABLEWAIT
01781
01783 int ay_tcmd_waitpidtcmd(ClientData clientData, Tcl_Interp *interp,
01784 int argc, char *argv[]);
01785 #endif
01786
01787 #ifdef AYENABLEFEXIT
01788
01790 int ay_tcmd_fastexittcmd(ClientData clientData, Tcl_Interp *interp,
01791 int argc, char *argv[]);
01792 #endif
01793
01796 int ay_tcmd_withobtcmd(ClientData clientData, Tcl_Interp *interp,
01797 int argc, char *argv[]);
01798
01801 int ay_tcmd_registerlang(char *name, unsigned int *result);
01802
01805 int ay_tcmd_getstring(Tcl_Interp *interp, char *arr, char *var, char **result);
01806
01809 int ay_tcmd_getuint(char *str, unsigned int *uint);
01810
01813 int ay_tcmd_menustatetcmd(ClientData clientData, Tcl_Interp *interp,
01814 int argc, char *argv[]);
01815
01818 int ay_tcmd_getplanenormaltcmd(ClientData clientData, Tcl_Interp *interp,
01819 int argc, char *argv[]);
01820
01823 int ay_tcmd_openclosetcmd(ClientData clientData, Tcl_Interp *interp,
01824 int argc, char *argv[]);
01825
01828 int ay_tcmd_refinecoarsentcmd(ClientData clientData, Tcl_Interp *interp,
01829 int argc, char *argv[]);
01830
01833 int ay_tcmd_registergeneric(int op, ay_genericcb *cb, unsigned int type_id);
01834
01837 int ay_tcmd_init(Tcl_Interp *interp);
01838
01841 int ay_tcmd_crttoolobjtcmd(ClientData clientData, Tcl_Interp *interp,
01842 int argc, char *argv[]);
01843
01846 int ay_tcmd_getpoints(Tcl_Interp *interp, char *fname, char *arg,
01847 double **pnts);
01848 #if 0
01849
01851 int ay_tcmd_extendctcmd(ClientData clientData, Tcl_Interp *interp,
01852 int argc, char *argv[]);
01853 #endif
01854
01855
01856
01859 void ay_tgui_init(Tcl_Interp *interp);
01860
01861
01862
01863
01866 int ay_tmp_gettcmd(ClientData clientData, Tcl_Interp *interp,
01867 int argc, char *argv[]);
01868
01869
01870
01871
01874 void ay_toglcb_create(struct Togl *togl);
01875
01878 void ay_toglcb_destroy(struct Togl *togl);
01879
01882 void ay_toglcb_reshape(struct Togl *togl);
01883
01886 void ay_toglcb_display(struct Togl *togl);
01887
01888
01889
01890
01893 void ay_trafo_apply3(double *c, double *m);
01894
01897 void ay_trafo_apply3v(double *c, unsigned int clen, unsigned int stride,
01898 double *m);
01899
01902 void ay_trafo_apply4(double *c, double *m);
01903
01906 void ay_trafo_apply4v(double *c, unsigned int clen, unsigned int stride,
01907 double *m);
01908
01911 void ay_trafo_getparent(ay_list_object *lo, double *tm);
01912
01915 void ay_trafo_getparentinv(ay_list_object *lo, double *tm);
01916
01919 void ay_trafo_getsomeparent(ay_list_object *lo, int what, double *tm);
01920
01923 void ay_trafo_getsomeparentinv(ay_list_object *lo, int what, double *tm);
01924
01927 void ay_trafo_concatparent(ay_list_object *lo);
01928
01931 void ay_trafo_getall(ay_list_object *lo, ay_object *o, double *tm);
01932
01935 int ay_trafo_delegate(ay_object *o);
01936
01939 int ay_trafo_delegatetcmd(ClientData clientData, Tcl_Interp *interp,
01940 int argc, char *argv[]);
01941
01944 void ay_trafo_applyall(ay_list_object *lo, ay_object *o, double *p);
01945
01948 void ay_trafo_applyalli(ay_list_object *lo, ay_object *o, double *p);
01949
01952 void ay_trafo_copy(ay_object *src, ay_object *dst);
01953
01956 void ay_trafo_add(ay_object *src, ay_object *dst);
01957
01960 void ay_trafo_defaults(ay_object *o);
01961
01964 int ay_trafo_movtcmd(ClientData clientData, Tcl_Interp *interp,
01965 int argc, char *argv[]);
01966
01969 int ay_trafo_scaltcmd(ClientData clientData, Tcl_Interp *interp,
01970 int argc, char *argv[]);
01971
01974 int ay_trafo_rottcmd(ClientData clientData, Tcl_Interp *interp,
01975 int argc, char *argv[]);
01976
01979 void ay_trafo_multmatrix(double *m1, double *m2);
01980
01983 void ay_trafo_multvectmatrix(double *v, double *m);
01984
01987 int ay_trafo_invmatrix(double *m, double *mi);
01988
01991 int ay_trafo_invgenmatrix(double *m, double *mi);
01992
01995 void ay_trafo_creatematrix(ay_object *o, double *m);
01996
01999 void ay_trafo_decomposematrix(double *m, ay_object *o);
02000
02003 void ay_trafo_identitymatrix(double *m);
02004
02007 int ay_trafo_isidentitymatrix(double *m);
02008
02011 void ay_trafo_translatematrix(double x, double y, double z, double *m);
02012
02015 void ay_trafo_scalematrix(double x, double y, double z, double *m);
02016
02019 void ay_trafo_rotatematrix(double angle, double x, double y, double z,
02020 double *m);
02021
02024 void ay_trafo_normalize(ay_object *o, int digits);
02025
02028 int ay_trafo_normalizetcmd(ClientData clientData, Tcl_Interp *interp,
02029 int argc, char *argv[]);
02030
02033 double ay_trafo_round(double value, int digits);
02034
02035
02036
02037
02040 int ay_undo_init(int buffer_size);
02041
02044 void ay_undo_clear(void);
02045
02048 void ay_undo_clearobj(ay_object *o);
02049
02052 int ay_undo_undotcmd(ClientData clientData, Tcl_Interp *interp,
02053 int argc, char *argv[]);
02054
02055
02056
02057
02060 int ay_vact_movetcb(struct Togl *togl, int argc, char *argv[]);
02061
02064 int ay_vact_zoomtcb(struct Togl *togl, int argc, char *argv[]);
02065
02068 int ay_vact_moveztcb(struct Togl *togl, int argc, char *argv[]);
02069
02070
02071
02072
02075 void ay_viewt_setupprojection(struct Togl *togl);
02076
02079 void ay_viewt_rotate(ay_view_object *view, double rotx, double roty,
02080 double rotz);
02081
02084 void ay_viewt_wintoobj(struct Togl *togl, ay_object *o,
02085 double winX, double winY,
02086 double *objX, double *objY, double *objZ);
02087
02090 void ay_viewt_winrecttoobj(struct Togl *togl, ay_object *o,
02091 double winX, double winY,
02092 double winX2, double winY2,
02093 double *obj);
02094
02097 void ay_viewt_wintoworld(struct Togl *togl, double winX, double winY,
02098 double *worldX, double *worldY, double *worldZ);
02099
02102 int ay_viewt_zoomtoobj(struct Togl *togl, int argc, char *argv[]);
02103
02106 int ay_viewt_align(struct Togl *togl, int argc, char *argv[]);
02107
02110 void ay_viewt_alignlocal(void);
02111
02114 void ay_viewt_redrawall(void);
02115
02118 int ay_viewt_makecurtcb(struct Togl *togl, int argc, char *argv[]);
02119
02122 void ay_viewt_changetype(ay_view_object *view, int type);
02123
02126 int ay_viewt_reshapetcb(struct Togl *togl, int argc, char *argv[]);
02127
02130 int ay_viewt_redrawtcb(struct Togl *togl, int argc, char *argv[]);
02131
02134 int ay_viewt_getconftcb(struct Togl *togl, int argc, char *argv[]);
02135
02138 int ay_viewt_setconftcb(struct Togl *togl, int argc, char *argv[]);
02139
02142 int ay_viewt_updatemark(struct Togl *togl, int local);
02143
02146 void ay_viewt_printmark(ay_view_object *view);
02147
02150 void ay_viewt_updateglobalmark(struct Togl *togl);
02151
02154 void ay_viewt_getglobalmark(double **m);
02155
02158 int ay_viewt_fromcamtcb(struct Togl *togl, int argc, char *argv[]);
02159
02162 int ay_viewt_tocamtcb(struct Togl *togl, int argc, char *argv[]);
02163
02166 void ay_viewt_uprop(ay_view_object *view, int notify);
02167
02170 int ay_viewt_griddify(struct Togl *togl, double *winx, double *winy);
02171
02174 int ay_viewt_droptcb(struct Togl *togl, int argc, char *argv[]);
02175
02178 void ay_viewt_setupintview(int viewnum, ay_object *o, ay_view_object *vtemp);
02179
02182 int ay_viewt_markfromsel(struct Togl *togl);
02183
02186 int ay_viewt_markfromselp(struct Togl *togl, int mode);
02187
02190 int ay_viewt_markfromwin(struct Togl *togl, int argc, char *argv[]);
02191
02194 int ay_viewt_markfromworld(struct Togl *togl, double *world);
02195
02198 int ay_viewt_saveimgtcb(struct Togl *togl, int argc, char *argv[]);
02199
02202 void ay_viewt_warpmouse(struct Togl *togl, double *coord, ay_object *o,
02203 double *newwinx, double *newwiny);
02204
02207 void ay_viewt_getrolledup(ay_view_object *view, double *u);
02208
02211 void ay_viewt_worldtowin(double *world, double *win);
02212
02215 int ay_viewt_rendertoviewportcb(struct Togl *togl, int argc, char *argv[]);
02216
02219 void ay_viewt_objrecttoplanes(double *rect, double *plcs);
02220
02223 void ay_viewt_distfromcam(struct Togl *togl, int winx, int winy, double *dist);
02224
02227 void ay_viewt_getcamfromti(ay_tag *tag, int *view_type,
02228 ay_camera_object **camera);
02229
02232 void ay_viewt_init(Tcl_Interp *interp);
02233
02234
02235
02236 #ifdef WIN32
02237
02240 int ay_w32t_w32killtcmd(ClientData clientData, Tcl_Interp *interp,
02241 int argc, char *argv[]);
02242
02245 int ay_w32t_w32pstcmd(ClientData clientData, Tcl_Interp *interp,
02246 int argc, char *argv[]);
02247
02250 FILE *ay_w32t_openpipe(char *pipe);
02251
02254 int ay_w32t_w32screengeomtcmd(ClientData clientData, Tcl_Interp *interp,
02255 int argc, char *argv[]);
02256
02257
02258
02259 #define snprintf sprintf_s
02260
02261 #endif
02262
02263
02264
02265
02268 int ay_wrib_isprimitive(ay_object *o);
02269
02272 void ay_wrib_aimz(RtPoint direction);
02273
02276 void ay_wrib_placecamera(RtPoint position, RtPoint direction, double roll);
02277
02280 void ay_wrib_rioptions(int searchpathsonly);
02281
02284 int ay_wrib_checklights(ay_object *o);
02285
02288 int ay_wrib_alllights(char *file);
02289
02292 int ay_wrib_rootsh(int imager);
02293
02296 int ay_wrib_defmat(void);
02297
02300 void ay_wrib_trafos(ay_object *o);
02301
02304 int ay_wrib_object(char *file, ay_object *o);
02305
02308 int ay_wrib_toolobject(char *file, ay_object *o, ay_object *t);
02309
02312 int ay_wrib_caporbevel(char *file, ay_object *o, ay_object *c, unsigned int ci);
02313
02316 char *ay_wrib_geniafilename(char *base, char *oi);
02317
02320 int ay_wrib_refobject(char *file, ay_object *o);
02321
02324 int ay_wrib_scene(char *file, char *image, char *driver, char *hider,
02325 int temp, int target,
02326 double *from, double *to,
02327 double roll, double zoom, double nearp, double farp,
02328 int width, int height, int type);
02329
02332 int ay_wrib_viewtcb(struct Togl *togl, int argc, char *argv[]);
02333
02336 void ay_wrib_displaytags(int have_ridisplay);
02337
02340 void ay_wrib_hidertags(void);
02341
02344 int ay_wrib_tcmd(ClientData clientData, Tcl_Interp *interp,
02345 int argc, char *argv[]);
02346
02347 #ifdef AYENABLEPPREV
02348
02351 int ay_wrib_pprevdraw(ay_view_object *view);
02352
02355 int ay_wrib_pprevopen(ay_view_object *view);
02356
02359 void ay_wrib_pprevclose();
02360 #endif
02361
02364 void ay_wrib_init(Tcl_Interp *interp);
02365
02366
02367
02368
02371 int ay_write_header(FILE *fileptr);
02372
02375 int ay_write_attributes(FILE *fileptr, ay_object *o);
02376
02379 int ay_write_tags(FILE *fileptr, ay_object *o);
02380
02383 void ay_write_shader(FILE *fileptr, ay_shader *shader);
02384
02387 int ay_write_object(FILE *fileptr, ay_object *o);
02388
02391 int ay_write_scene(char *fname, int selected);
02392
02395 int ay_write_scenetcmd(ClientData clientData, Tcl_Interp *interp,
02396 int argc, char *argv[]);
02397
02398
02399
02402 int ay_checkversion(char *fname, char *version_ma, char *version_mi);
02403
02406 #endif