Scroll to navigation

GLUTESSCALLBACK(3G) GLUTESSCALLBACK(3G)

̾??

gluTessCallback - ?ƥ??졼?????󥪥֥??????Ȥ??Ф??ƥ??????Хå???????????

????

void gluTessCallback( GLUtesselator* tess,

	GLenum which,
	_GLUfuncptr CallBackFunc )

??????

?ƥ??졼?????󥪥֥???????(gluNewTess ???Ȥäƺ???) ?????ꤹ?롣
???????륳?????Хå??????ꤹ?롣 ͭ?????ͤϼ????̤??Ǥ???: GLU_TESS_BEGIN, GLU_TESS_BEGIN_DATA, GLU_TESS_EDGE_FLAG, GLU_TESS_EDGE_FLAG_DATA, GLU_TESS_VERTEX, GLU_TESS_VERTEX_DATA, GLU_TESS_END, GLU_TESS_END_DATA, GLU_TESS_COMBINE, GLU_TESS_COMBINE_DATA, GLU_TESS_ERROR, GLU_TESS_ERROR_DATA??
?ƤӽФ??????ؿ??????ꤹ?롣

????

gluTessCallback ?ϡ??ƥ??졼?????󥪥֥??????Ȥ? ?Ȥ????????Хå????ؼ????뤿???˻Ȥ??? ???ꤵ?줿???????Хå????????????????Ƥ??????硢???Υ??????Хå??? ?֤??????????롣 CallBackFunc ?? NULL ?ʤ??С????ߤ??륳?????Хå???̤?????? ???֤ˤ????롣

???????Υ??????Хå??ϥƥ??졼?????󥪥֥??????Ȥ??Ȥ??? ?桼???????ꤷ???ݥꥴ?????ɤΤ褦?˻??ѷ?ʬ?䤹???Τ??? ???Ҥ??뤿???˻Ȥ????롣 ???줾???Υ??????Хå??ˤϤդ??ĤΥС??????󤬤??????????դ??뤳??: ?桼???????ꤷ???ݥꥴ???ǡ????????????????Τȼ????????ʤ????ΤǤ??롣 ???륳?????Хå??ˤĤ???ξ???ΥС??????󤬻??ꤵ???Ƥ????????ϡ? ?桼???????ꤷ???ݥꥴ???ǡ??????????????С??????????????Ȥ????롣 ?????δؿ??˻Ȥ????? polygon_data ???????ϡ? gluTessBeginPolygon ???ƤӽФ??줿???˻??ꤵ???Ƥ????ݥ??󥿤? ???ԡ??Ǥ??????????դ??뤳?ȡ? ??????ǽ?ʥ??????Хå??ϰʲ????̤??Ǥ???:

???ϥ??????Хå??? glBegin ?Τ褦?˸ƤФ졢(???ѷ?)?ץ??ߥƥ??? ?γ??Ϥ򼨤??? ???δؿ??? GLenum ???ΰ????????ҤȤļ??롣 GLU_TESS_BOUNDARY_ONLY °???? GL_FALSE ?????ꤵ???Ƥ? ???????ϡ????????ˤ? GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP, GL_TRIANGLES ?Τ????줫?????ꤵ???롣 GLU_TESS_BOUNDARY_ONLY °???? GL_TRUE ?????ꤵ???Ƥ??? ?????ϡ????????ˤ? GL_LINE_LOOP ?????ꤵ???롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void begin ( GLenum type );
GLU_TESS_BEGIN ???????Хå??Ȥۤ?Ʊ???Ǥ??뤬???ݥ??󥿰????? ???ҤȤ?¿???????????ۤʤ롣 ???Υݥ??󥿤? gluTessBeginPolygon ???ƤФ줿?Ȥ???Ϳ?????줿 opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void beginData ( GLenum type, void *polygon_data );
?????ե饰???????Хå??? glEdgeFlag ?˻??Ƥ??롣 ???δؿ??Ͽ????ͤ??ҤȤİ??????Ȥ??Ƽ??ꡢ???ΰ??????Ϥɤ??????? ?ݥꥴ???ζ??????ˤ????Τ??򼨤??? ???Υե饰?? GL_TRUE ?ʤ??С????θ???³?????줾????ĺ???? ?ݥꥴ?󶭳????ˤ????????򳫻Ϥ??롣?Ĥޤꡢ?????ΰ????????ΰ??ȶ??? ?????????򳫻Ϥ??롣 ???Υե饰?? GL_FALSE ?ʤ??С????θ???³?????줾????ĺ???? ?ݥꥴ???????ˤ????????򳫻Ϥ??롣 ?????ե饰???????Хå???(?⤷?????????Ƥ?????)?ǽ???ĺ?????????Хå??? ???˸ƤӽФ????롣
???ѷ????Ǥˤ????ե????????Ȼ??ѷ????Ǥˤ??륹?ȥ??å׷??????????ե饰 ???б????Ƥ??ʤ??Τǡ?NULL ?Ǥʤ??????ե饰???????Хå??????ꤵ???Ƥ??? ?????ˤⳫ?ϥ??????Хå??? GL_TRIANGLE_FAN ?? GL_TRIANGLE_STRIP ?????????˸ƤФ??뤳?ȤϤʤ??? (???Υ??????Хå??? NULL ?˽??????????Ƥ????С???ǽ?ؤαƶ??Ϥʤ???) ???????????ˡ??ե????????䥹?ȥ??å׷???????Ω???????ѷ??????Ѵ??????롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void edgeFlag ( GLboolean flag );
GLU_TESS_EDGE_FLAG ???????Хå??˻??Ƥ??뤬???ݥ??󥿰??????? ?ҤȤ?¿???????????ۤʤ롣 ???Υݥ??󥿤? gluTessBeginPolygon ???ƤФ줿?Ȥ???Ϳ?????줿 opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void edgeFlagData ( GLboolean flag, void *polygon_data );
ĺ?????????Хå??ϳ??ϥ??????Хå??Ƚ?λ???????Хå??δ֤ǸƤФ??롣 ???Υ??????Хå??? glVertex ?˻??Ƥ??ꡢ?ƥ??졼???????????? ?????줿???ѷ?????ĺ???????????롣 ???δؿ??ϥݥ??󥿰????????ҤȤĤ??????롣 ???Υݥ??󥿤ϡ?ĺ???????Ҥ??줿(gluTessVertex ?򻲾?)?Ȥ??? ?桼???????ꤷ?? opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void vertex ( void *vertex_data );
GLU_TESS_VERTEX ???????Хå??Ȥۤ?Ʊ???Ǥ??뤬???ݥ??󥿰????? ???ҤȤ?¿???????????ۤʤ롣 ???Υݥ??󥿤? gluTessBeginPolygon ???ƤФ줿?Ȥ???Ϳ?????줿 opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void vertexData ( void *vertex_data, void *polygon_data );
??λ???????Хå??????Ӥ? glEnd ??Ʊ???Ǥ??롣 ???Υ??????Хå??ϥץ??ߥƥ??֤ν??????򼨤??????????ϼ????ʤ??? ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void end ( void );
GLU_TESS_END ???????Хå??Ȥۤ?Ʊ???Ǥ??뤬???ݥ??󥿰????? ???ҤȤ?¿???????????ۤʤ롣 ???Υݥ??󥿤? gluTessBeginPolygon ???ƤФ줿?Ȥ???Ϳ?????줿 opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void endData ( void *polygon_data);
???祳?????Хå??ϡ??ƥ??졼?????󤬴??Ĥ򸡽Ф??????? ??????ħ???ޡ??????褦?Ȥ??????ˡ???????ĺ???????뤿???˸ƤӽФ????롣 ???δؿ??ϼ??? 4 ?Ĥΰ???????????: GLdouble ???????? 3 ?Ĥ??????? 4 ?ĤΥݥ??󥿤???????GLfloat ???????? 4 ?Ĥ????󡢥ݥ??󥿤ؤΥݥ????? ?Ǥ??롣 ?ؿ??ץ??ȥ????פ??ʲ??˼???:
void combine( GLdouble coords[3], void *vertex_data[4],
GLfloat weight[4], void **outData );
ĺ???ϡ???¸?? 4 ?ĤޤǤ?ĺ?????????????Ȥ????????????롣 ????ĺ???? vertex_data ?˳?Ǽ?????롣 ?????????η????? weight ??Ϳ???롣 ???νŤ??դ??ˤ????Ƥϡ??????ι??פ?ɬ?? 1 ?Ǥʤ????Фʤ??ʤ??? ?????Ĥ??νŤߤ??ͤ? 0 ?Ǥ??äƤ⡢ĺ?????ؤ????ƤΥݥ??󥿤?ͭ???Ǥ??롣 coords ?Ͽ?????ĺ???κ?ɸ??Ϳ???롣
?桼???Ͽ?????ĺ???????????ơ?vertex_data ?? weight ?? ?Ȥäƥѥ??᡼???????֤?????????ĺ?????ؤ??ݥ??󥿤? outData ?? ?֤??ʤ????Фʤ??ʤ??? ???ν????ϥ????????󥰥??????Хå??δ֤?Ϳ???????롣 gluTessEndPolygon ???ƤФ??Ƥ??餷?Ф餯???? ?????????????????Τϥ桼??????Ǥ?Ǥ??롣
?㤨?С??ݥꥴ???? 3 ????????????Ǥ?դ?ʿ?????ˤ??ꡢ ??ĺ???˿??????????Ƥ????Ƥ????????ˤϡ?GLU_TESS_COMBINE ???????Хå??ϰʲ??Τ褦?ˤʤ?:
void myCombine( GLdouble coords[3], VERTEX *d[4],
GLfloat w[4], VERTEX **dataOut ) {
VERTEX *new = new_vertex();


new->x = coords[0];
new->y = coords[1];
new->z = coords[2];
new->r = w[0]*d[0]->r + w[1]*d[1]->r + w[2]*d[2]->r + w[3]*d[3]->r;
new->g = w[0]*d[0]->g + w[1]*d[1]->g + w[2]*d[2]->g + w[3]*d[3]->g;
new->b = w[0]*d[0]->b + w[1]*d[1]->b + w[2]*d[2]->b + w[3]*d[3]->b;
new->a = w[0]*d[0]->a + w[1]*d[1]->a + w[2]*d[2]->a + w[3]*d[3]->a;
*dataOut = new; }

?ƥ??졼???????????????Ĥ򸫤Ĥ????????ˤϡ?GLU_TESS_COMBINE ???????Хå??ޤ??? GLU_TESS_COMBINE_DATA ???????Хå?(????)?? ?????????Ƥ??ʤ????Фʤ餺???????ˤ??Υ??????Хå??? NULL ?Ǥʤ? ?ݥ??󥿤? dataOut ?˽񤭹??ޤʤ????Фʤ??ʤ??? ?????Ǥʤ??????ϡ?GLU_TESS_NEED_COMBINE_CALLBACK ???顼 ???????ꡢ???ϤϤޤä????Ԥ????ʤ???
???ҤȤ?¿???????????ۤʤ롣 ???Υݥ??󥿤? gluTessBeginPolygon ???ƤФ줿?Ȥ???Ϳ?????줿 opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void combineData ( GLdouble coords[3], void *vertex_data[4],
GLfloat weight[4], void **outData,
void *polygon_data );
???顼???????Хå??ϥ??顼?????????Ȥ??˸ƤӽФ????롣 ???Υ??????Хå??? GLenum ???ΰ????????ҤȤļ??롣 ???ΰ??????ϵ????ä????顼?򼨤??? GLU_TESS_MISSING_BEGIN_POLYGON, GLU_TESS_MISSING_END_POLYGON, GLU_TESS_MISSING_BEGIN_CONTOUR, GLU_TESS_MISSING_END_CONTOUR, GLU_TESS_COORD_TOO_LARGE, GLU_TESS_NEED_COMBINE_CALLBACK, GLU_OUT_OF_MEMORY ?Τ????줫?????ꤵ???롣 ???????Υ??顼??ɽ??ʸ?????ϡ?gluErrorString ?θƤӽФ??Ǽ??? ?Ǥ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void error ( GLenum errno );
GLU ?饤?֥????ϡ?­???ʤ??ƤӽФ??????????뤳?Ȥˤ??ꡢ ?ǽ??? 4 ?ĤΥ??顼?????????????롣 GLU_TESS_COORD_TOO_LARGE ?ϡ???ɸ???????ͤ? ͽ???????????Ƥ????????Ǥ??? GLU_TESS_MAX_COORD ??Ķ???Ƥ??? ĺ???????ꡢ???κ?ɸ?ͤ?«?????????????Ȥ򼨤??? (??ɸ?ͤϡ??դ??Ĥκ?ɸ?ͤ??ݤ????碌?Ƥ⥪???С??ե??????ʤ????٤? ???????ʤ????Фʤ??ʤ???) GLU_TESS_NEED_COMBINE_CALLBACK ?ϡ??ƥ??졼???????????? ???ϥǡ??????Τդ??Ĥ??????δ??Ĥ????Ф??졢 GLU_TESS_COMBINE ???????Хå??? GLU_TESS_COMBINE_DATA ???????Хå???Ϳ???????ʤ??ä????Ȥ򼨤??? ???ξ????ˤϽ??ϤϤޤä????Ԥ????ʤ??? GLU_OUT_OF_MEMORY ?ϡ????Ϸ??̤????????뤿????ɬ?פʥ????꤬ ??­???Ƥ??????Ȥ򼨤???
GLU_TESS_ERROR ???????Хå??Ȥۤ?Ʊ???Ǥ??뤬???ݥ??󥿰????? ???ҤȤ?¿???????????ۤʤ롣 ???Υݥ??󥿤? gluTessBeginPolygon ???ƤФ줿?Ȥ???Ϳ?????줿 opaque ?ʥݥ??󥿤?Ʊ???Τ??ΤǤ??롣 ???Υ??????Хå??δؿ??ץ??ȥ????פ??ʲ??˼???:
void errorData ( GLenum errno, void *polygon_data );

??????

?ƥ??졼?????????????줿?ݥꥴ???ϼ??Τ褦?ˤ????? ľ?ܥ????????󥰤Ǥ???:

gluTessCallback(tobj, GLU_TESS_BEGIN, glBegin); gluTessCallback(tobj, GLU_TESS_VERTEX, glVertex3dv); gluTessCallback(tobj, GLU_TESS_END, glEnd); gluTessCallback(tobj, GLU_TESS_COMBINE, myCombine); gluTessBeginPolygon(tobj, NULL);
gluTessBeginContour(tobj);
gluTessVertex(tobj, v, v);
...
gluTessEndContour(tobj); gluTessEndPolygon(tobj);

???̤ϡ??ƥ??졼?????????????????ݥꥴ???ϥǥ????ץ쥤?ꥹ?Ȥ˳?Ǽ ???٤??Ǥ??롣?????????С??????????󥰤??뤿?Ӥ??????ƥ??졼?????????? ??????ľ??ɬ?פ??ʤ??????Ǥ??롣

??Ϣ????

glBegin, glEdgeFlag, glVertex, gluNewTess, gluErrorString, gluTessVertex, gluTessBeginPolygon, gluTessBeginContour, gluTessProperty, gluTessNormal