Update of /cvsroot/artoolkit/artoolkit/include/AR
In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv1540
Modified Files:
gsubUtil.h arMulti.h matrix.h gsub.h
Log Message:
Change line endings from CR to LF.
Index: arMulti.h
===================================================================
RCS file: /cvsroot/artoolkit/artoolkit/include/AR/arMulti.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** arMulti.h 23 Aug 2005 18:21:15 -0000 1.3
--- arMulti.h 20 Aug 2006 21:48:18 -0000 1.4
***************
*** 1,166 ****
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
! * -------------------------------------------------------------------------*/
! /**
! * \file arMulti.h
! * \brief ARToolkit multi pattern subroutines.
! *
! * This file extend ar core routines for multi-pattern tracking.
! * You can obtain position of a local coordinate
! * system based on the estimation of multiple markers tracking (each in relative
! * position)
! *
! * \remark more efficient with uniform planar configuration
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version 1.0
! * \date 01/09/05
! **/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
! *----------------------------------------------------------------------------*/
!
! #ifndef AR_MULTI_H
! #define AR_MULTI_H
! #ifdef __cplusplus
! extern "C" {
! #endif
!
! // ============================================================================
! // Public includes.
! // ============================================================================
!
! #include <stdio.h>
! #include <AR/config.h>
! #include <AR/param.h>
! #include <AR/ar.h>
!
! // ============================================================================
! // Public types and defines.
! // ============================================================================
!
! /** \struct ARMultiEachMarkerInfoT
! * \brief multi-marker structure
! *
! * Structure for multi-marker tracking
! * really similar to ARMarkerInfo
! * \param patt_id identification of the pattern
! * \param width width of the pattern (in mm)
! * \param center center of the pattern (in mm)
! * \param trans estimated position of the pattern
! * \param itrans relative position of the pattern
! * \param pos3d final position of the pattern
! * \param visible boolean flag for visibility
! * \param visibleR last state visibility
! */
! typedef struct {
! int patt_id;
! double width;
! double center[2];
! double trans[3][4];
! double itrans[3][4];
! double pos3d[4][3];
! int visible;
! /*---*/
! int visibleR;
! } ARMultiEachMarkerInfoT;
!
! /** \struct ARMultiMarkerInfoT
! * \brief global multi-marker structure
! *
! * Main structure for multi-marker tracking.
! *
! * \param marker list of markers of the multi-marker pattern
! * \param marker_num number of markers used
! * \param trans position of the multi-marker pattern (more precisely, the camera position in the multi-marker CS)
! * \param prevF boolean flag for visibility
! * \param transR last position
! */
! typedef struct {
! ARMultiEachMarkerInfoT *marker;
! int marker_num;
! double trans[3][4];
! int prevF;
! /*---*/
! double transR[3][4];
! } ARMultiMarkerInfoT;
!
! // ============================================================================
! // Public globals.
! // ============================================================================
!
! // ============================================================================
! // Public functions.
! // ============================================================================
!
! /**
! * \brief loading multi-markers description from a file
! *
! * Load a configuration file for multi-markers tracking. The configuration
! * file furnishs pointer to each pattern description.
! *
! * \param filename name of the pattern file
! * \return a pattern structure, NULL if error
! */
! ARMultiMarkerInfoT *arMultiReadConfigFile( const char *filename );
!
! /**
! * \brief compute camera position in function of the multi-marker patterns (based on detected markers)
! *
! * calculate the transformation between the multi-marker patterns and the real camera. Based on
! * confident values of detected markers in the multi-markers patterns, a global position is return.
! *
! * \param marker_info list of detected markers (from arDetectMarker)
! * \param marker_num number of detected markers
! * \param config
! * \return
! */
! double arMultiGetTransMat(ARMarkerInfo *marker_info, int marker_num,
! ARMultiMarkerInfoT *config);
!
! /**
! * \brief activate a multi-marker pattern on the recognition procedure.
! *
! * Activate a multi-marker for be checking during the template matching
! * operation.
! * \param config pointer to the multi-marker
! * \return 0 if success, -1 if error
! */
! int arMultiActivate( ARMultiMarkerInfoT *config );
!
! /**
! * \brief Desactivate a multi-marker pattern on the recognition procedure.
! *
! * Desactivate a multi-marker for not be checking during the template matching
! * operation.
! * \param config pointer to the multi-marker
! * \return 0 if success, -1 if error
! */
! int arMultiDeactivate( ARMultiMarkerInfoT *config );
!
! /**
! * \brief remove a multi-marker pattern from memory.
! *
! * desactivate a pattern and remove it from memory. Post-condition
! * of this function is unavailability of the multi-marker pattern.
! * \param config pointer to the multi-marker
! * \return 0 if success, -1 if error
! */
! int arMultiFreeConfig( ARMultiMarkerInfoT *config );
!
! /*------------------------------------*/
! double arsMultiGetTransMat(ARMarkerInfo *marker_infoL, int marker_numL,
! ARMarkerInfo *marker_infoR, int marker_numR,
! ARMultiMarkerInfoT *config);
!
!
! #ifdef __cplusplus
! }
! #endif
! #endif
--- 1,166 ----
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
! * -------------------------------------------------------------------------*/
! /**
! * \file arMulti.h
! * \brief ARToolkit multi pattern subroutines.
! *
! * This file extend ar core routines for multi-pattern tracking.
! * You can obtain position of a local coordinate
! * system based on the estimation of multiple markers tracking (each in relative
! * position)
! *
! * \remark more efficient with uniform planar configuration
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version 1.0
! * \date 01/09/05
! **/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
! *----------------------------------------------------------------------------*/
!
! #ifndef AR_MULTI_H
! #define AR_MULTI_H
! #ifdef __cplusplus
! extern "C" {
! #endif
!
! // ============================================================================
! // Public includes.
! // ============================================================================
!
! #include <stdio.h>
! #include <AR/config.h>
! #include <AR/param.h>
! #include <AR/ar.h>
!
! // ============================================================================
! // Public types and defines.
! // ============================================================================
!
! /** \struct ARMultiEachMarkerInfoT
! * \brief multi-marker structure
! *
! * Structure for multi-marker tracking
! * really similar to ARMarkerInfo
! * \param patt_id identification of the pattern
! * \param width width of the pattern (in mm)
! * \param center center of the pattern (in mm)
! * \param trans estimated position of the pattern
! * \param itrans relative position of the pattern
! * \param pos3d final position of the pattern
! * \param visible boolean flag for visibility
! * \param visibleR last state visibility
! */
! typedef struct {
! int patt_id;
! double width;
! double center[2];
! double trans[3][4];
! double itrans[3][4];
! double pos3d[4][3];
! int visible;
! /*---*/
! int visibleR;
! } ARMultiEachMarkerInfoT;
!
! /** \struct ARMultiMarkerInfoT
! * \brief global multi-marker structure
! *
! * Main structure for multi-marker tracking.
! *
! * \param marker list of markers of the multi-marker pattern
! * \param marker_num number of markers used
! * \param trans position of the multi-marker pattern (more precisely, the camera position in the multi-marker CS)
! * \param prevF boolean flag for visibility
! * \param transR last position
! */
! typedef struct {
! ARMultiEachMarkerInfoT *marker;
! int marker_num;
! double trans[3][4];
! int prevF;
! /*---*/
! double transR[3][4];
! } ARMultiMarkerInfoT;
!
! // ============================================================================
! // Public globals.
! // ============================================================================
!
! // ============================================================================
! // Public functions.
! // ============================================================================
!
! /**
! * \brief loading multi-markers description from a file
! *
! * Load a configuration file for multi-markers tracking. The configuration
! * file furnishs pointer to each pattern description.
! *
! * \param filename name of the pattern file
! * \return a pattern structure, NULL if error
! */
! ARMultiMarkerInfoT *arMultiReadConfigFile( const char *filename );
!
! /**
! * \brief compute camera position in function of the multi-marker patterns (based on detected markers)
! *
! * calculate the transformation between the multi-marker patterns and the real camera. Based on
! * confident values of detected markers in the multi-markers patterns, a global position is return.
! *
! * \param marker_info list of detected markers (from arDetectMarker)
! * \param marker_num number of detected markers
! * \param config
! * \return
! */
! double arMultiGetTransMat(ARMarkerInfo *marker_info, int marker_num,
! ARMultiMarkerInfoT *config);
!
! /**
! * \brief activate a multi-marker pattern on the recognition procedure.
! *
! * Activate a multi-marker for be checking during the template matching
! * operation.
! * \param config pointer to the multi-marker
! * \return 0 if success, -1 if error
! */
! int arMultiActivate( ARMultiMarkerInfoT *config );
!
! /**
! * \brief Desactivate a multi-marker pattern on the recognition procedure.
! *
! * Desactivate a multi-marker for not be checking during the template matching
! * operation.
! * \param config pointer to the multi-marker
! * \return 0 if success, -1 if error
! */
! int arMultiDeactivate( ARMultiMarkerInfoT *config );
!
! /**
! * \brief remove a multi-marker pattern from memory.
! *
! * desactivate a pattern and remove it from memory. Post-condition
! * of this function is unavailability of the multi-marker pattern.
! * \param config pointer to the multi-marker
! * \return 0 if success, -1 if error
! */
! int arMultiFreeConfig( ARMultiMarkerInfoT *config );
!
! /*------------------------------------*/
! double arsMultiGetTransMat(ARMarkerInfo *marker_infoL, int marker_numL,
! ARMarkerInfo *marker_infoR, int marker_numR,
! ARMultiMarkerInfoT *config);
!
!
! #ifdef __cplusplus
! }
! #endif
! #endif
Index: gsubUtil.h
===================================================================
RCS file: /cvsroot/artoolkit/artoolkit/include/AR/gsubUtil.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** gsubUtil.h 22 Nov 2004 02:11:05 -0000 1.2
--- gsubUtil.h 20 Aug 2006 21:48:18 -0000 1.3
***************
*** 1,37 ****
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
! * -------------------------------------------------------------------------*/
! /**
! * \file gsubUtil.h
! * \brief ARToolkit OpenGL utilities subroutines.
! *
! * Complement routines of gsub module.
! * \remark
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version
! * \date
! **/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
*----------------------------------------------------------------------------*/
! #ifndef AR_GSUB_UTIL_H
! #define AR_GSUB_UTIL_H
! #ifdef __cplusplus
! extern "C" {
! #endif
!
// ============================================================================
// Public includes.
// ============================================================================
!
! #include <AR/param.h>
!
// ============================================================================
// Public types and defines.
--- 1,37 ----
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
! * -------------------------------------------------------------------------*/
! /**
! * \file gsubUtil.h
! * \brief ARToolkit OpenGL utilities subroutines.
! *
! * Complement routines of gsub module.
! * \remark
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version
! * \date
! **/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
*----------------------------------------------------------------------------*/
! #ifndef AR_GSUB_UTIL_H
! #define AR_GSUB_UTIL_H
! #ifdef __cplusplus
! extern "C" {
! #endif
!
// ============================================================================
// Public includes.
// ============================================================================
!
! #include <AR/param.h>
!
// ============================================================================
// Public types and defines.
***************
*** 61,70 ****
* parameters. if your application is mono display, only lpara contains a value.
* lpara and rpara are NULL if the calibration failed.
! */
! void argUtilCalibHMD( int targetId, int thresh2,
! void (*postFunc)(ARParam *lpara, ARParam *rpara) );
!
! #ifdef __cplusplus
! }
! #endif
! #endif
--- 61,70 ----
* parameters. if your application is mono display, only lpara contains a value.
* lpara and rpara are NULL if the calibration failed.
! */
! void argUtilCalibHMD( int targetId, int thresh2,
! void (*postFunc)(ARParam *lpara, ARParam *rpara) );
!
! #ifdef __cplusplus
! }
! #endif
! #endif
Index: matrix.h
===================================================================
RCS file: /cvsroot/artoolkit/artoolkit/include/AR/matrix.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** matrix.h 25 Nov 2004 23:24:20 -0000 1.3
--- matrix.h 20 Aug 2006 21:48:18 -0000 1.4
***************
*** 1,28 ****
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
* -------------------------------------------------------------------------*/
! /**
! * \file matrix.h
! * \brief ARToolkit algebric mathematics subroutines.
! *
! * This package include matrix, vector manipulation routine. In complement
! * to must classical routines (inversion, innerproduct), it includes a PCA (Principal)
! * Component Analysis) routine.
! * For the structure of the matrix see ARMat.
! * \remark
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version
! * \date
! *
**/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
*----------------------------------------------------------------------------*/
--- 1,28 ----
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
* -------------------------------------------------------------------------*/
! /**
! * \file matrix.h
! * \brief ARToolkit algebric mathematics subroutines.
! *
! * This package include matrix, vector manipulation routine. In complement
! * to must classical routines (inversion, innerproduct), it includes a PCA (Principal)
! * Component Analysis) routine.
! * For the structure of the matrix see ARMat.
! * \remark
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version
! * \date
! *
**/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
*----------------------------------------------------------------------------*/
***************
*** 363,365 ****
#endif
#endif
!
--- 363,365 ----
#endif
#endif
!
Index: gsub.h
===================================================================
RCS file: /cvsroot/artoolkit/artoolkit/include/AR/gsub.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** gsub.h 22 Nov 2004 02:11:05 -0000 1.2
--- gsub.h 20 Aug 2006 21:48:18 -0000 1.3
***************
*** 1,43 ****
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
! * -------------------------------------------------------------------------*/
! /**
! * \file gsub.h
! * \brief ARToolkit OpenGL subroutines.
! *
! * This file contains the main display functions used in ARToolkit Library.
! * It contains wrapped functions of GLUT and openGL for doing real-time
! * rendering. This choice give us a large multi-platform support for the display
! * module of ARToolkit.
! * \remark The supported stereo mode is interleaved stereo mode (only for i-glasses display).
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version
! * \date
**/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
*----------------------------------------------------------------------------*/
!
! #ifndef AR_GSUB_H
! #define AR_GSUB_H
! #ifdef __cplusplus
! extern "C" {
! #endif
!
// ============================================================================
// Public includes.
// ============================================================================
!
! #include <AR/config.h>
! #include <AR/param.h>
! #include <AR/ar.h>
!
// ============================================================================
// Public types and defines.
--- 1,43 ----
! /* --------------------------------------------------------------------------
! * Copyright (C) 2004 Hitlab NZ.
! * The distribution policy is describe on the Copyright.txt furnish
! * with this library.
! * -------------------------------------------------------------------------*/
! /**
! * \file gsub.h
! * \brief ARToolkit OpenGL subroutines.
! *
! * This file contains the main display functions used in ARToolkit Library.
! * It contains wrapped functions of GLUT and openGL for doing real-time
! * rendering. This choice give us a large multi-platform support for the display
! * module of ARToolkit.
! * \remark The supported stereo mode is interleaved stereo mode (only for i-glasses display).
! *
! * History :
! *
! * \author Hirokazu Kato ka...@sy...
! * \version
! * \date
**/
! /* --------------------------------------------------------------------------
! * History :
! * Rev Date Who Changes
! *
*----------------------------------------------------------------------------*/
!
! #ifndef AR_GSUB_H
! #define AR_GSUB_H
! #ifdef __cplusplus
! extern "C" {
! #endif
!
// ============================================================================
// Public includes.
// ============================================================================
!
! #include <AR/config.h>
! #include <AR/param.h>
! #include <AR/ar.h>
!
// ============================================================================
// Public types and defines.
***************
*** 58,64 ****
* by default: DEFAULT_DRAW_MODE in config.h
* \rem choice and performance depends on your hardware and your openGL driver.
! */
! extern int argDrawMode;
!
/** \var int argTexmapMode
* \brief define the texture map configuration mode.
--- 58,64 ----
* by default: DEFAULT_DRAW_MODE in config.h
* \rem choice and performance depends on your hardware and your openGL driver.
! */
! extern int argDrawMode;
!
/** \var int argTexmapMode
* \brief define the texture map configuration mode.
***************
*** 70,76 ****
* - AR_DRAW_TEXTURE_HALF_IMAGE: texture mapping half resolution.
* by default: DEFAULT_DRAW_TEXTURE_IMAGE in config.h
! */
! extern int argTexmapMode;
!
// ============================================================================
// Public functions.
--- 70,76 ----
* - AR_DRAW_TEXTURE_HALF_IMAGE: texture mapping half resolution.
* by default: DEFAULT_DRAW_TEXTURE_IMAGE in config.h
! */
! extern int argTexmapMode;
!
// ============================================================================
// Public functions.
***************
*** 88,94 ****
* \param ywin XXXBK. 0 if indifferent.
* \param hmd_flag enable stereo display mode (only interleaved configuration)
! */
! void argInit( ARParam *cparam, double zoom, int fullFlag, int xwin, int ywin, int hmd_flag );
!
/** \fn void argLoadHMDparam( ARParam *lparam, ARParam *rparam )
* \brief initialize camera for HMD.
--- 88,94 ----
* \param ywin XXXBK. 0 if indifferent.
* \param hmd_flag enable stereo display mode (only interleaved configuration)
! */
! void argInit( ARParam *cparam, double zoom, int fullFlag, int xwin, int ywin, int hmd_flag );
!
/** \fn void argLoadHMDparam( ARParam *lparam, ARParam *rparam )
* \brief initialize camera for HMD.
***************
*** 99,105 ****
* \param lparam parameter of left camera
* \param rparam parameter of right camera
! */
! void argLoadHMDparam( ARParam *lparam, ARParam *rparam );
!
/** \fn void argCleanup( void )
* \brief Close the gsub library.
--- 99,105 ----
* \param lparam parameter of left camera
* \param rparam parameter of right camera
! */
! void argLoadHMDparam( ARParam *lparam, ARParam *rparam );
!
/** \fn void argCleanup( void )
* \brief Close the gsub library.
***************
*** 109,115 ****
* \remark BE CAREFUL, THIS FUNCTION DOESN'T RESET PERSPECTIVE
* MATRIX AND CURRENT GL STATE TO DEFAULT
! */
! void argCleanup( void );
!
/** \fn void argSwapBuffers( void )
* \brief swap the rendering buffer.
--- 109,115 ----
* \remark BE CAREFUL, THIS FUNCTION DOESN'T RESET PERSPECTIVE
* MATRIX AND CURRENT GL STATE TO DEFAULT
! */
! void argCleanup( void );
!
/** \fn void argSwapBuffers( void )
* \brief swap the rendering buffer.
***************
*** 118,124 ****
* pre-condition is that all the rendering functions have been
* called.
! */
! void argSwapBuffers( void );
!
/** \fn void argMainLoop( void (*mouseFunc)(int button, int state, int x, int y),
void (*keyFunc)(unsigned char key, int x, int y),
--- 118,124 ----
* pre-condition is that all the rendering functions have been
* called.
! */
! void argSwapBuffers( void );
!
/** \fn void argMainLoop( void (*mouseFunc)(int button, int state, int x, int y),
void (*keyFunc)(unsigned char key, int x, int y),
***************
*** 132,140 ****
* \param keyFunc the user keyboard function can be NULL.
* \param mainFunc the user main update function can be NULL.
! */
! void argMainLoop( void (*mouseFunc)(int button, int state, int x, int y),
! void (*keyFunc)(unsigned char key, int x, int y),
! void (*mainFunc)(void) );
!
/** \fn void argDrawMode2D( void )
* \brief switch the rendering context for 2D rendering mode.
--- 132,140 ----
* \param keyFunc the user keyboard function can be NULL.
* \param mainFunc the user main update function can be NULL.
! */
! void argMainLoop( void (*mouseFunc)(int button, int state, int x, int y),
! void (*keyFunc)(unsigned char key, int x, int y),
! void (*mainFunc)(void) );
!
/** \fn void argDrawMode2D( void )
* \brief switch the rendering context for 2D rendering mode.
***************
*** 196,202 ****
* \param ywin width of rendering view (less than window width)
*/
! void argDraw3dCamera( int xwin, int ywin );
!
!
/** \fn void argConvGlpara( double para[3][4], double gl_para[16] )
* \brief transform ARToolKit matrix format to an openGL matrix format.
--- 196,202 ----
* \param ywin width of rendering view (less than window width)
*/
! void argDraw3dCamera( int xwin, int ywin );
!
!
/** \fn void argConvGlpara( double para[3][4], double gl_para[16] )
* \brief transform ARToolKit matrix format to an openGL matrix format.
***************
*** 314,331 ****
void (**keyFunc)(unsigned char key, int x, int y),
void (**mainFunc)(void) );
!
! /*-------------------------*/
!
! void argsInit( ARSParam *scparam, double zoom, int twinFlag, int fullFlag, int xwin, int ywin );
! void argsDraw3dCamera( int xwin, int ywin, int LorR, int stencil_flag );
! void argsConvGLcpara( ARSParam *sparam, double gnear, double gfar, double mL[16], double mR[16] );
! void argsDispImage( ARUint8 *image, int LorR, int xwin, int ywin );
! void argsDispHalfImage( ARUint8 *image, int LorR, int xwin, int ywin );
! void argsLineSeg( double x1, double y1, double x2, double y2, int xwin, int ywin, int LorR );
! void argsDrawSquare( double vertex[4][2], int xwin, int ywin, int LorR );
!
!
! #ifdef __cplusplus
! }
! #endif
! #endif
--- 314,331 ----
void (**keyFunc)(unsigned char key, int x, int y),
void (**mainFunc)(void) );
!
! /*-------------------------*/
!
! void argsInit( ARSParam *scparam, double zoom, int twinFlag, int fullFlag, int xwin, int ywin );
! void argsDraw3dCamera( int xwin, int ywin, int LorR, int stencil_flag );
! void argsConvGLcpara( ARSParam *sparam, double gnear, double gfar, double mL[16], double mR[16] );
! void argsDispImage( ARUint8 *image, int LorR, int xwin, int ywin );
! void argsDispHalfImage( ARUint8 *image, int LorR, int xwin, int ywin );
! void argsLineSeg( double x1, double y1, double x2, double y2, int xwin, int ywin, int LorR );
! void argsDrawSquare( double vertex[4][2], int xwin, int ywin, int LorR );
!
!
! #ifdef __cplusplus
! }
! #endif
! #endif
|