PHIGS fuggvenyek a javasolt ill. lehetseges parameterezesekkel
==============================================================
A tipusdefiniciokat lasd a phigs.h-ban!
==============================================================
Controlling, Workstation
-----------------------------
popen_phigs( /* phigs nyitasa es inicializalasa */
const char *error_file, /* PDEF_ERR_FILE errorfile neve*/
size_t buffer_size /* PDEF_MEM_SIZE pufferterulet */
);
pclose_phigs( /* PHIGS kornyezet lezarasa */
void
);
popen_ws(
Pint workstation_id,
const void *connection_id, /* NULL */
Pint workstation_type /* phigs_ws_type_x_tool */
);
pclose_ws( /* lezarja az adott workstation-t */
Pint workstation_id
);
Workstation Color Table
-----------------------
pset_colr_rep( /*adott WS szinpalettajaban modosit adott indexu elemet*/
Pint ws_id,
Pint color_index,
Pcol_rep *rep
);
Strukturak
----------
popen_struct( /* struktura nyitasa, ha nem volt, letrehozza */
Pint structure_id
);
pclose_struct( /* aktualis struktura lezarasa */
void
);
ppost_struct( /* struktura atkuldese a workstation-re */
Pint workstation_id,
Pint structure_id,
Pfoat priority /* (Pfloat) [0.0-1.0] */
);
punpost_struct( /* struktura visszavonása a workstation-rol */
Pint workstation_id,
Pint structure_id,
);
pupd_ws( /* WS megjelenitese*/
Pint workstation_id,
Pregen_flag regeneration_flag /* {PFLAG_PERFORM, PFLAG_POSTPONE} */
);
pset_disp_upd_st( /* WS display update mod beallitasa */
Pint ws_id,
Pint deferral_mode, /* {PDEFER_ASAP, PDEFER_BNIG, PDEFER_BNIL, PDEFER_ASTI, PDEFER_WAIT} */
Pint modification_mode /* {PMODE_NIVE, PMODE_UWOR, PMODE_UQUM} */
);
Strukturak szerkesztese
-----------------------
pset_edit_mode( /*struktura editalashoz szerkesztesi mod beallitasa*/
Pint mode /* {PEDIT_INSERT, PEDIT_REPLACE} */
);
plabel( /*cimke hozzaadasa a strukturahoz*/
Pint label_id
);
pset_elem_ptr( /*elempointer abszolut poziciojanak megadasa a strukturaban*/
Pint ep_value
);
pset_elem_ptr_label( /* elempointer cimkere allitasa*/
Pint label_id
);
poffset_elem_ptr( /* elempointer reletiv pozicionalasa*/
Pint ep_offset
);
Vonal primitivek
-----------------
ppolyline( /*2D: polyline primitiv hozzaadasa a strukturahoz */
const Ppoint_list *point_list
);
ppolyline3( /*3D: polylin3 primitiv hozzaadasa a strukturahoz */
const Ppoint_list3 *point_list
);
Vonal attributumok
------------------
pset_linecolr( /* vonal szinenek beallitasa*/
Pgcolr *col
);
pset_linetype( /* vonaltipus beallitasa*/
Pint linetype /* {PLINE_SOLID (folytonos), PLINE_DASH (szaggatott), PLINE_DOT (pontozott),PLINE_DASH_DOT (pontvonal)} */
);
pset_linewidth( /* vonalvastagsag beallitasa */
Pfloat width /* >= 1.0 */
);
Teruleti primitivek
--------------------
pfill_area( /* 2D: letrehoz egy 'fill_area' strukturaelemet, nincs ele */
Ppoint_list *point_list
);
pfill_area3( /* 3D: letrehoz egy 'fill_area3' strukturaelemet, nincs ele */
Ppoint_list3 *point_list
);
pfill_area_set( /* 2D: letrehoz egy 'fill_area_set' strukturaelemet, (van ele, tobb pontlistaval leirhato) */
Ppoint_list_list *point_list_set
);
pfill_area_set3( /* 3D: letrehoz egy 'fill_area_set' strukturaelemet, (van ele, tobb pontlistaval leirhato) */
Ppoint_list_list3 *point_list_set
);
Teruleti attributumok
---------------------
pset_int_colr( /* kitoltes szinenek beallitasa*/
Pgcolr *col
);
pset_int_style( /* kitoltes stilusanak beallitasa*/
Pint interior_style /* {PSTYLE_SOLID (tomor), PSTYLE_EMPTY (ures), PSTYLE_HOLLOW (ures,de az elek megjelennek a kitoltesi szinnel ), PSTYLE_HATCH (sraffozott), PSTYLE_PAT (minta)*/
);
pset_edge_flag( /*ellel rendelkezo teruleti primitiv elenek megjeleniteset engedelyezi/tiltja*/
Pint edge_flag /* {PEDGE_ON (engedelyezes), PEDGE_OFF (tiltas)} */
);
pset_edgetype( /* eltipus beallitasa*/
Pint linetype /* PLINE_SOLID(folytonos), PLINE_DASH(szaggatott),PLINE_ DOT(pontozott),PLINE_DASH_DOT(pont-vonal) */
);
Polymarker primitivek es attributumok
-------------------------------------
ppolymarker(
const Ppoint_list *point_list
);
ppolymarker3(
const Ppoint_list3 *point_list
);
pset_marker_colr(
Pgcolr *col
);
pset_marker_size(
Pfloat size
);
pset_marker_type(
Pint type /* PMARKER_DOT, PMARKER_PLUS, PMARKER_ASTERISK, PMARKER_CIRCLE, PMARKER_CROSS */
);
Text primitivek
----------------
ptext(
Ppoint *location,
char *text
);
ptext3(
Ppoint3 *location,
Pvec dir[2],
char *text
);
Text attributumok
-----------------
pset_char_ht(
Pfloat char_height
);
pset_text_align(
Ptext_align *text_align /* .hor = {PHOR_NORM,PHOR_LEFT,PHOR_CTR,PHOR_RIGHT} */
/* .vert = {PVERT_NORM,PVERT_TOP(textbox teteje),PVERT_CAP(text teteje),*/
/* PVERT_HALF(textbox kozepe),PVERT_BASE(text alja),PVERT_BOTTOM(textbox alja)} */
);
pset_text_colr( /* text szinenek beallitasa*/
Pgcolr *col
);
pset_char_expan( /* text expaziojanak beallitasa*/
Pfloat expan
);
tovabbi text attributumok (gyakorlaton nem hasznaljuk):
------------------------------------------------
pset_text_font(Pint font);
pset_char_up_vect(Pvec *up_vec);
pset_text_path(Ptext_path path); /*text iranya:PPATH_RIGHT,PPATH_LEFT, PPATH_UP,PPATH_DOWN*/
pset_char_space(Pfloat spacing);
pset_text_prec (Ptext_prec pecision); /* PPREC_STRING,PPREC_CHAR,PPREC_STROKE*/
Modell transzformaciok
----------------------
ptranslate( /* 2D eltolashoz kitolti a transzformacios matrixot*/
Pvec *trans_vec, /*input: eltolasvektor (.del_x, .del_y*/
Pint *error,
Pmatrix xform /*output: 2D forgato matrix*/
);
ptranslate3( /* 3D eltolashoz kitolti a transzformacios matrixot*/
Pvec3 *trans_vec, /*input: eltolasvektor (.del_x, .del_y, .del_z*/
Pint *error,
Pmatrix3 xform /*output:3D forgato matrix*/
);
protate( /* 2D forgatashoz kitolti a transzformacios matrixot*/
Pfloat *theta_in_rad, /*forgatas szoge*/
Pint *error,
Pmatrix xform
);
protate_x( /* 3D x-tengely koruli forgatashoz kitolti a transzformacios matrixot*/
Pfloat *theta_in_rad, /*forgatas szoge*/
Pint *error,
Pmatrix3 xform
);
protate_y( /* 3D y-tengely koruli forgatashoz kitolti a transzformacios matrixot*/
Pfloat *theta_in_rad, /*forgatas szoge*/
Pint *error,
Pmatrix3 xform
);
protate_z( /* 3D z-tengely koruli forgatashoz kitolti a transzformacios matrixot*/
Pfloat *theta_in_rad, /*forgatas szoge*/
Pint *error,
Pmatrix3 xform
);
pscale( /* 2D skalazashoz kitolti a transzformacios matrixot*/
Pvec *scale_vec,
Pint *error,
Pmatrix xform
);
pscale3( /* 3D skalazashoz kitolti a transzformacios matrixot*/
Pvec3 *scale_vec,
Pint *error,
Pmatrix3 xform
);
pbuild_tran_matrix( /* altalanos 2D trafo megadasa fixponttal */
Ppoint *local_origin, /* fixpont (.x, .y) */
Pvec *tr_vec, /* eltolasvektor (.delta_x, .delta_y) */
Pfloat theta_in_rad, /* z-tengely koruli elforgatas szoge*/
Pvec *sc_vec, /* skalavektor (.delta_x, .delta_y) */
Pint *error, /* output: hibakod*/
Pmatrix xform /* output: 2D transzformacios matrix*/
); /* a transzformaciok sorrendje: 1. skalazas es forgatas a fixpont korul; 2. eltolas */
pbuild_tran_matrix3( /* altalanos 3D trafo megadasa fixponttal */
Ppoint3 *local_origin, /* fixpont (.x, .y, .z) */
Pvec3 *tr_vec, /* eltolasvektor (.delta_x, .delta_y, .delta_z) */
Pfloat x_theta_in_rad, /* x-tengely koruli elforgatas szoge*/
Pfloat y_theta_in_rad, /* y-tengely koruli elforgatas szoge*/
Pfloat z_theta_in_rad, /* z-tengely koruli elforgatas szoge*/
Pvec3 *sc_vec, /* skalavektor (.delta_x, .delta_y, .delta_z) */
Pint *error, /* output: hibakod*/
Pmatrix3 xform /* output: 3D transzformacios matrix*/
);
pcompose_matrix( /*2D transzformacios matrixok kompozicioja (3*3)*/
Pmatrix left_matrix, /* baloldali matrix*/
Pmatrix right_matrix, /* jobboldali matrix*/
Pint *error, /* output: hibakod*/
Pmatrix result_matrix /* output: eredmeny matrix*/
);
pcompose_matrix3( /*3D transzformacios matrixok kompozicioja (3*3)*/
Pmatrix3 left_matrix, /* baloldali matrix*/
Pmatrix3 right_matrix, /* jobboldali matrix*/
Pint *error, /* output: hibakod*/
Pmatrix3 result_matrix /* output: eredmeny matrix*/
);
pcompose_tran_matrix( /*meglevo 2D trafomatrixhoz(A) tovabbi fix pont, skala, elforgatas es eltolas (B) hozzaadasa-> (C)*/
Pmatrix in_right_matrix, /*meglevo (jobboldali) matrix: A*/
/*B matrix megadasa. Sorrend: fixpont koruli skalazas es forg.; eltolas*/
Ppoint *local_origin, /* fixpont (.x, .y) */
Pvec *tr_vec, /* eltolasvektor (.delta_x, .delta_y) */
Pfloat theta_in_rad, /* z-tengely koruli elforgatas szoge*/
Pvec *sc_vec, /* skalavektor (.delta_x, .delta_y) */
Pint *error, /* output: hibakod*/
Pmatrix out_matrix /* output: B*A matrix */
);
pcompose_tran_matrix3( /*meglevo 3D trafomatrixhoz(A) tovabbi fix pont, skala, elforgatas es eltolas (B) hozzaadasa-> (C)*/
Pmatrix3 in_right_matrix, /*meglevo (jobboldali) matrix: A*/
/*B matrix megadasa. Sorrend: fixpont koruli skalazas es forg.; eltolas*/
Ppoint3 *local_origin, /* fixpont (.x, .y, .z) */
Pvec3 *tr_vec, /* eltolasvektor (.delta_x, .delta_y, .delta_z) */
Pfloat x_theta_in_rad, /* x-tengely koruli elforgatas szoge*/
Pfloat y_theta_in_rad, /* y-tengely koruli elforgatas szoge*/
Pfloat z_theta_in_rad, /* z-tengely koruli elforgatas szoge*/
Pvec3 *sc_vec, /* skalavektor (.delta_x, .delta_y, .delta_z) */
Pint *error, /* output: hibakod*/
Pmatrix3 out_matrix /* output: B*A matrix */
);
/****** modell trafo: Pvilag= G * L * Pmodell* *****/
pset_local_tran( /* lokalis modelltranszformacio 2D-ben a transzformacios matrix alapjan*/
Pmatrix xform,
Pint compose_type /* PTYPE_REPLACE(L <= xform), PTYPE_PRECONCAT (L <= L * xform), PTYPE_POSTCONCAT (L <= xform * L) */
);
pset_local_tran3( /* lokalis modelltranszformacio 3D-ben a transzformacios matrix alapjan*/
Pmatrix3 xform,
Pint compose_type /* PTYPE_REPLACE (L <= xform), PTYPE_PRECONCAT (L <= L * xform), PTYPE_POSTCONCAT (L <= xform * L)*/
);
pset_global_tran( /* globalis modelltranszformacio 2D-ben a transzformacios matrix alapjan*/
Pmatrix xform
); /* G <= xform*/
pset_global_tran3( /* globalis modelltranszformacio 2D-ben a transzformacios matrix alapjan*/
Pmatrix3 xform
); /* G <= xform*/
Viewing
--------
peval_view_map_matrix(
Pview_map *mapping,
Pint *error,
Pmatrix view_map_matrix
);
peval_view_map_matrix(
Pview_map3 *mapping,
Pint *error,
Pmatrix3 view_map_matrix
);
peval_view_ori_matrix(
Ppoint *view_ref_point,
Pvec *view_up_vector,
Pint *error,
Pmatrix view_orient_matrix
);
peval_view_ori_matrix(
Ppoint3 *view_ref_point,
Pvec3 *view_plane_normal,
Pvec3 *view_up_vector,
Pint *error,
Pmatrix3 view_orient_matrix
);
pset_view_rep(
Pint ws_id,
Pint view_index,
Pview_rep *view_rep
);
pset_view_rep3(
Pint ws_id,
Pint view_index,
Pview_rep3 *view_rep
);
Struktura halozatok
-------------------
pexec_struct(
Pint str_id
);