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