plib-users Mailing List for PLIB (Page 6)
Brought to you by:
sjbaker
You can subscribe to this list here.
2000 |
Jan
|
Feb
(24) |
Mar
(54) |
Apr
(29) |
May
(58) |
Jun
(29) |
Jul
(675) |
Aug
(46) |
Sep
(40) |
Oct
(102) |
Nov
(39) |
Dec
(40) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(45) |
Feb
(23) |
Mar
(30) |
Apr
(64) |
May
(28) |
Jun
(61) |
Jul
(55) |
Aug
(35) |
Sep
(24) |
Oct
(23) |
Nov
(21) |
Dec
(67) |
2002 |
Jan
(98) |
Feb
(23) |
Mar
(13) |
Apr
(23) |
May
(43) |
Jun
(45) |
Jul
(54) |
Aug
(5) |
Sep
(56) |
Oct
(17) |
Nov
(53) |
Dec
(26) |
2003 |
Jan
(67) |
Feb
(36) |
Mar
(22) |
Apr
(35) |
May
(26) |
Jun
(35) |
Jul
(10) |
Aug
(49) |
Sep
(17) |
Oct
(3) |
Nov
(30) |
Dec
(10) |
2004 |
Jan
(12) |
Feb
(18) |
Mar
(52) |
Apr
(50) |
May
(22) |
Jun
(13) |
Jul
(16) |
Aug
(23) |
Sep
(21) |
Oct
(29) |
Nov
(6) |
Dec
(26) |
2005 |
Jan
(9) |
Feb
(19) |
Mar
(13) |
Apr
(19) |
May
(12) |
Jun
(8) |
Jul
(6) |
Aug
(10) |
Sep
(22) |
Oct
(3) |
Nov
(6) |
Dec
(17) |
2006 |
Jan
(10) |
Feb
(8) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(8) |
Jul
(8) |
Aug
(13) |
Sep
(2) |
Oct
(1) |
Nov
(9) |
Dec
(6) |
2007 |
Jan
(3) |
Feb
(4) |
Mar
(12) |
Apr
(2) |
May
(6) |
Jun
|
Jul
(22) |
Aug
|
Sep
(9) |
Oct
(13) |
Nov
|
Dec
|
2008 |
Jan
(1) |
Feb
(6) |
Mar
(2) |
Apr
(4) |
May
(15) |
Jun
(28) |
Jul
(8) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2009 |
Jan
(5) |
Feb
(5) |
Mar
|
Apr
|
May
(3) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
(2) |
Apr
(7) |
May
(4) |
Jun
(2) |
Jul
(5) |
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2011 |
Jan
(7) |
Feb
(2) |
Mar
(1) |
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(1) |
Nov
(4) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(4) |
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Arthur M. M. <hal...@gm...> - 2008-02-29 13:10:49
|
Jan I change the line 107: ssgaCelestialBodyList::~ssgaCelestialBodyList () { removeAll(); } to ~ssgaCelestialBodyList() { removeAll(); } and to line 195 too and it compile. I will use the CVS Thanks Jan 2008/2/29, Jan Reucker <slo...@gm...>: > > Am Fri, 29 Feb 2008 00:19:05 -0300 schrieb "Arthur M. Meskelis" < > hal...@gm...>: > > > > ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on > > member 'ssgaCelestialBodyList' > > ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on > member > > 'ssgaCloudLayerList' > > > [...] > > > Error in extra qualification ssgaCelestialBodyList:: on member > > ssgaCelestialBodyList ?????, how I can resolve this problem. > > > Arthur, > > remove "ssgaCelestialBodyList::" from line 107 of ssgaSky.h and > "ssgaCloudLayerList::" from line 195 of the same file. > > This is already fixed in the CVS version of PLIB. It's definitely time > for a 1.8.5 release to get rid of this bug. > > Kind regards, > Jan R. > > -- > Jan Reucker > email: jan dot reucker at web dot de > web: http://www.reucker-online.de > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > plib-users mailing list > pli...@li... > https://lists.sourceforge.net/lists/listinfo/plib-users > |
From: <pos...@ca...> - 2008-02-29 11:22:54
|
Hi all, I integrated plib into my GLUT-based application. It works GREAT. I'm one more happy user in my sandbox. Now, problem arises when integrating inside a WIN32 application, whose windows does (and will, probably) not be wrapped with GLUT. The following code below, using basis example, illustrates the problem : a device context gets created, some opengl is painted inside, and the gui (a button and a menu) gets called. Running the application : the gui shows up. when I check if a gui's element is hit by a mouse clic, the puMouse(..) returns correct, identifying wether an element was clicked or not. But no objects callbacks occurs and the submenu stays invisible. The menu is hilighted when the mouse points over and the buttonbox can be checked. What am I doing wrong ? /* PUI - WIN32 - NO GLUT */ #pragma comment ( lib, "fnt.lib" ) #pragma comment ( lib, "pui.lib" ) #pragma comment ( lib, "sg.lib" ) #pragma comment ( lib, "ul.lib" ) #define PU_USE_NATIVE #include <plib/pu.h> #include<windows.h> #include<gl/gl.h> #include<gl/glu.h> void Render(); bool InitializeGL(); HDC g_HDC; float xRotation = 0.0f; float yRotation = 0.0f; int gWidth = 0; int gHeight = 0; void button_cb(puObject *) {MessageBox(NULL,"ok","ok",MB_OK);} void foo_cb (puObject *) {MessageBox(NULL,"foo","foo",MB_OK);} void bar_cb (puObject *) {MessageBox(NULL,"bar","bar",MB_OK);} void exit_cb (puObject *) {exit(0);} char *file_submenu [] = { "Exit","foo","bar", NULL } ; puCallback file_submenu_cb[] = { exit_cb, foo_cb, bar_cb, NULL } ; char * PUIlabels[5] = { "Label1", "Label2", "This is Label3", "Four", NULL } ; puMenuBar * menu; puOneShot *b; puButtonBox * checkList; void SetupPixelFormat(HDC hDC) { int nPixelFormat; static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // size of structure. 1, // always 1. PFD_DRAW_TO_WINDOW | // support window PFD_SUPPORT_OPENGL | // support OpenGl PFD_DOUBLEBUFFER, // support double buffering PFD_TYPE_RGBA, // support RGBA 16, // bit color mode 0, 0, 0, 0, 0, 0, // ignore color bits 0, // no alpha buffer 0, // ignore shift bit 0, // no accumulation buffer 0, 0, 0, 0, // ignore accumulation bits. 16, // number of depth buffer bits. 0, // number of stencil buffer bits. 0, // 0 means no auxiliary buffer PFD_MAIN_PLANE, // The main drawing plane 0, // this is reserved 0, 0, 0 }; // layer masks ignored. // this chooses the best pixel format and returns index. nPixelFormat = ChoosePixelFormat(hDC, &pfd); // This set pixel format to device context. SetPixelFormat(hDC, nPixelFormat, &pfd); } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { static HGLRC hRC; // Rendering context. static HDC hDC; // Device context. int width, height; // The window width and height. static POINT oldMousePos; // Last mouse position. static POINT currentMousePos; // Current mouse position. static bool isMouseActive; // Is the left mouse button down. switch(message) { case WM_CREATE: // Windows creation. hDC = GetDC(hwnd); // This gets the device context for our window. g_HDC = hDC; // Assigns the global device context to this one. SetupPixelFormat(hDC); // Call the pixel format function. hRC = wglCreateContext(hDC); // Creates the rendering context. wglMakeCurrent(hDC, hRC); // Makes the rendering context. return 0; break; case WM_CLOSE: // Close message. case WM_DESTROY: wglMakeCurrent(hDC, NULL); wglDeleteContext(hRC); // Deletes the rendering context. PostQuitMessage(0); // Says close the program. return 0; break; case WM_SIZE: // re-size message. height = HIWORD(lParam); // This gets the height of the window. width = LOWORD(lParam); // This gets the width of the window. if(height == 0) // we don't want it to be possible for a { // height of 0. If it is 0 me make it 1. height = 1; } gHeight = height; gWidth = width; puSetWindowSize ( width, height ) ; glViewport(0, 0, width, height);// resets the viewport to new dimensions. glMatrixMode(GL_PROJECTION); // Sets the projection matrix. glLoadIdentity(); // Reset the modelview matrix. // calculate the aspect ratio of the window. gluPerspective(45.0f, (GLfloat)width/(GLfloat)height, 0.1f, 1000.0f); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); return 0; break; case WM_KEYDOWN: switch(wParam) { case VK_ESCAPE: PostQuitMessage(0); break; } break; case WM_LBUTTONDOWN: oldMousePos.x = currentMousePos.x = LOWORD (lParam); oldMousePos.y = currentMousePos.y = HIWORD (lParam); if( puMouse ( 1, PU_DOWN, currentMousePos.x, currentMousePos.y )) //{ }//MessageBox(NULL,"DOWN","down",MB_OK); } isMouseActive = true; break; case WM_LBUTTONUP: currentMousePos.x = LOWORD (lParam); currentMousePos.y = HIWORD (lParam); if( puMouse ( 1, PU_UP, currentMousePos.x, currentMousePos.y )) {}// MessageBox(NULL,"UP","UP",MB_OK); } isMouseActive = false; break; case WM_MOUSEMOVE: currentMousePos.x = LOWORD (lParam); currentMousePos.y = HIWORD (lParam); if(isMouseActive) { xRotation -= (currentMousePos.x - oldMousePos.x); yRotation -= (currentMousePos.y - oldMousePos.y); } oldMousePos.x = currentMousePos.x; oldMousePos.y = currentMousePos.y; puMouse(currentMousePos.x,currentMousePos.y); break; default: break; } // What this does is pass all of the unhandled messages to DefWindowProc return (DefWindowProc(hwnd, message, wParam, lParam)); } int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { MSG msg; // A message variable. WNDCLASSEX windowClass; // Your Window class. HWND hwnd; // The Window handle. bool isFinished; // True then exit. windowClass.cbSize = sizeof(WNDCLASSEX); // size of the WNDCLASSEX structure. windowClass.style = CS_HREDRAW | CS_VREDRAW; // style of the window. windowClass.lpfnWndProc = WndProc; // Address to the windows procedure. windowClass.cbClsExtra = 0; // Extra class information. windowClass.cbWndExtra = 0; // Extra window information. windowClass.hInstance = hInstance; // Handle of application Instance. windowClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);// Handle of application Icon. windowClass.hCursor = LoadCursor(NULL, IDC_ARROW);// mouse cursor windowClass.hbrBackground = NULL; // background color. windowClass.lpszMenuName = NULL; // name of the main menu. windowClass.lpszClassName = "puitest";// window class name. windowClass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);// icon when minimized. if(!RegisterClassEx(&windowClass)) return 0; // Create the window. hwnd = CreateWindowEx(NULL,// The extended window style. "puitest",// window Class name. "a problem",// window name. WS_OVERLAPPEDWINDOW | WS_VISIBLE |// The window style. WS_SYSMENU | WS_CLIPCHILDREN |// window style. WS_CLIPSIBLINGS,// window style. 100, 100,// window x, y coordinate. 640, 480,// window width and height. NULL,// handle to parent window. NULL,// menu. hInstance,// handle to app instance. NULL); // pointer to window creation data. if(!hwnd) return 0; ShowWindow(hwnd, SW_SHOW); UpdateWindow(hwnd); isFinished = false; if(!InitializeGL()) isFinished = true; while(!isFinished) { if(PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) { if(msg.message == WM_QUIT) { isFinished = true; } TranslateMessage(&msg); DispatchMessage(&msg); } else Render(); } return (int)msg.wParam; } bool InitializeGL() { puInit (); menu = new puMenuBar(-1); menu->add_submenu ( "File", file_submenu, file_submenu_cb ) ; menu->close(); b = new puOneShot ( 0, 0, "say hello") ; b -> setCallback ( button_cb ) ; checkList = new puButtonBox ( 50, 50, 200, 200, PUIlabels, 0 ) ; glClearColor(0.6f, 0.6f, 0.8f, 0.0f); // Clear the screen to black. glShadeModel(GL_SMOOTH); glEnable(GL_DEPTH_TEST); return true; } void Render() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(0.0f, 0.0f, -5.0f); glRotatef(-yRotation, 1.0f, 0.0f, 0.0f); glRotatef(-xRotation, 0.0f, 1.0f, 0.0f); glBegin(GL_TRIANGLES); glColor3f(1.0f, 0.0f, 0.0f); glVertex3f(0.0f, 1.0f, 0.0f); glColor3f(0.0f, 0.0f, 1.0f); glVertex3f(-1.0f, -1.0f, 0.0f); glColor3f(1.0f, 1.0f, 1.0f); glVertex3f(1.0f, -1.0f, 0.0f); glEnd(); puDisplay () ; SwapBuffers(g_HDC); } |
From: Jan R. <slo...@gm...> - 2008-02-29 11:01:33
|
Am Fri, 29 Feb 2008 00:19:05 -0300 schrieb "Arthur M. Meskelis" <hal...@gm...>: > ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on > member 'ssgaCelestialBodyList' > ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member > 'ssgaCloudLayerList' > [...] > Error in extra qualification ssgaCelestialBodyList:: on member > ssgaCelestialBodyList ?????, how I can resolve this problem. Arthur, remove "ssgaCelestialBodyList::" from line 107 of ssgaSky.h and "ssgaCloudLayerList::" from line 195 of the same file. This is already fixed in the CVS version of PLIB. It's definitely time for a 1.8.5 release to get rid of this bug. Kind regards, Jan R. -- Jan Reucker email: jan dot reucker at web dot de web: http://www.reucker-online.de |
From: Arthur M. M. <hal...@gm...> - 2008-02-29 03:18:59
|
Hi guys, how are you?, I don't know if you have been this error: ssgaCelestialBody.cxx; \ then mv -f ".deps/ssgaCelestialBody.Tpo" ".deps/ssgaCelestialBody.Po"; else rm -f ".deps/ssgaCelestialBody.Tpo"; exit 1; fi ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' make[2]: *** [ssgaCelestialBody.o] Error 1 make[2]: Leaving directory `/home/arthur/progs/plib-1.8.4/src/ssgAux' make[1]: *** [install-recursive] Error 1 make[1]: Leaving directory `/home/arthur/progs/plib-1.8.4/src' make: *** [install-recursive] Error 1 bash-3.1# ls /tmp/plib/usr/lib/libplib Error in extra qualification ssgaCelestialBodyList:: on member ssgaCelestialBodyList ?????, how I can resolve this problem. I'm using the plib-1.8.4.tar.gz the command line: ./configure ; make install |
From: Annick et Jean-P. <jpm...@fr...> - 2008-01-13 10:47:42
|
Hello, guys ! After some searches, I can't find any information about that, except a commented method SetForceFeedback() in jsJoystick class (js.h) ... Does anyone knows what's already done, what's gonna be done, and may be when ? Thanks in advance. Jean-Philippe. |
From: Paolo L. <p.l...@ci...> - 2007-10-29 08:09:39
|
> -----Messaggio originale----- > Da: pli...@li... > [mailto:pli...@li...] Per conto > di naruto canada > Inviato: sabato 27 ottobre 2007 9.33 > A: pli...@li... > Oggetto: [Plib-users] ball and stick script > > hi > > Can someone help me with scripting this task? > I just need to automate importing points (balls) and lines > (sticks) from flat text file, Appearance is not important so > long as balls are "thicker" than sticks. > One color for balls and another for sticks is enough. If you are a C++ programmer you could write a simple interpreter for your text file which translates ball & stick directives into ssgShapes calls. E.g. when the interpreter finds a ball directive it should create a ssgaSphere and add it to the scene graph, and ssgaCylinder for sticks instead (less than 20-lines code I think). Unfortunately none of the 3D format loaders of the Plib/SSG support high-level (sphere, cylinder, etc.) primitive generation. > I simply need camera to coincide with a light source. > > I would be even more convenient if I can script moving camera > with keys or mouse movement. Plib offers a sample demo viewer in source code you could customize for your app. > Thanks Greetings - Paolo Leoncini |
From: naruto c. <nar...@gm...> - 2007-10-27 07:33:23
|
hi Can someone help me with scripting this task? I just need to automate importing points (balls) and lines (sticks) from flat text file, Appearance is not important so long as balls are "thicker" than sticks. One color for balls and another for sticks is enough. I simply need camera to coincide with a light source. I would be even more convenient if I can script moving camera with keys or mouse movement. Thanks |
From: Stuart M. <stu...@bl...> - 2007-10-24 05:22:47
|
There are no stupid questions.....However there are questions without enough information. "the list" what list are you talking about? "the.a" what is this you are expecting to find? However, trying to guess what you mean it could be the question is "I have downloaded plib and I can't find the archive libraries." If that is your question then the answer is you need to compile the source code to produce the library. If that is not your question then please ask again with more info. Thanks, Stuart. remy.le.guen wrote: > hello, I am a debutant on C++ and i am on windows but I don't find the.a > in the list why? > Vivelefrat > > |
From: remy.le.guen <rem...@wa...> - 2007-10-23 18:55:13
|
hello, I am a debutant on C++ and i am on windows but I don't find the.a in the list why? Vivelefrat |
From: Paolo L. <p.l...@ci...> - 2007-10-18 07:32:54
|
Now the big picture is clearer. As far as one uses (heading,pitch,roll) Euler angles for camera orientation, summing a fixed heading offset for = the side, 45=B0 walls doesn't work as your experience confirms. On the other = side I discourage you to pursue the clipping approach. (up view) _______ / \ / \ / \ O (isometric view) _______ /| |\ / | | \ / |_______| \ | / \ | | / O \ | |/ /|\ \| _|_ Since here we deal with a rotated screen problem we must take into = account the screen rotation in the calcOffAxisView: sgMat4 mview_wtos_mat; // Rotate the viewing frustum to correspond with the actual // screen orientation (orientation by screen axes, which, in turn, just depend on corners). sgMakeIdentMat4( mview_wtos_mat ); sgSetVec3( mview_wtos_mat[0], xProj[SG_X], yProj[SG_X], zProj[SG_X] ); sgSetVec3( mview_wtos_mat[1], xProj[SG_Y], yProj[SG_Y], zProj[SG_Y] ); sgSetVec3( mview_wtos_mat[2], xProj[SG_Z], yProj[SG_Z], zProj[SG_Z] ); // invert it (the simple way, which is suitable for roto-translation matrices) // this is because we use it as a modelview matrix // so it actually means: counter-rotate the world accordingly sgTransposeNegateMat4( mview_wtos_mat ); Arrange for passing mview_wtos_mat as a further argument to = calcOffAxisView. Then we have to use the general frustum parameters and the rotation = matrix. I'd like to not enter into FG specifics - I can only suggest how I use = them both in my apps. Before ssgCullAndDraw the following function gets called:=20 void setFrustumAndCamera( sgCoord *camera, // app camera in terms of (x,y,z) position and = (h,p,r) Euler angles float left, float right, float bottom, float top, // general frustum params as calculated by calcOffAxisView float near_clip, float far_clip, sgMat4 mview_wtos_mat // screen orientation matrix as calculated by calcOffAxisView ) { sgMat4 mview_mat, cam_mat; ssgSetFrustum( left, right, bottom, top, near_clip, far_clip ); sgCopyMat4( mview_mat, mview_wtos_mat ); // load the screen = orientation matrix sgMakeCoordMat4( cam_mat, camera ); // put camera in its matrix equivalent sgPostMultMat4( mview_mat, cam_mat ); // apply the camera = transformation to the screen orientation=20 ssgSetCamera( mview_mat ); // use it as the actual camera matrix } Third: how to find screen corners for each screen. Again, put a coord reference system at observer point of view (eyepos), so it is (0,0,0). Assuming the observer is on-axis with all screens, for a 45=B0 front = screen its corners are: b (half screen baseline) ___ \ | \ | d (screen distance from obs) \| B =3D d*tg(22,5=B0) =3D> B/d =3D tg(22,5=B0) =3D 0,41421 So we can arbirtarily set b =3D 1, then, for a screen aspect ratio of = 4:3, the front screen lies at d =3D -2,41421 (z+ outside the screen), and hence = we get: UL=3D(-1,.75,-2.41421) UR=3D(1,.75,-2.41421)=20 +--------------------+ | | y | | | | | |____ x | | / | | / | | z | +--------------------+ LL=3D(-1,-.75,-2.41421) LR=3D(1,-.75,-2.41421) For corners of the two side walls just rotate the front screen corners = by -45=B0 and +45=B0 respectively, with no regard of the center of rotation = (since it's (0,0,0) in our case). In case of acceptance of this general model, FG could be extended with support for such general screen definition (i.e. in terms of screen corners), and/or by calculating those from the heading offset as by the simple calculation above. The general screen definition would, = generally, support other multi-screen schema such as tiled screens, even with = partial overlap for edge blending. Greetings - Paolo Leoncini ________________________________ >=20 > Da: pli...@li... > [mailto:pli...@li...] Per conto di swetha=20 > korada > Inviato: marted=EC 16 ottobre 2007 10.45 > A: PLIB Users > Oggetto: Re: [Plib-users] R: How to clip an area > =09 > =09 > Hi, >=20 > We are using flightgear-0.9.4 version. We are running this=20 > flightgear in three pcs and projecting this on big curved 135 deg=20 > screen using three projectors.FOV in three is 45 deg and viewoffset=20 > that is camera view in flightgear is > 45 in left, 0 in center,-45 in right so that it will cover full 135=20 > deg fov. > But problem is when pitch up, terrain is not coming straight( Bow=20 > like image is coming i.e, right and left terrain up and the center is=20 > down). >=20 >=20 > ________________________________ >=20 > Da: swetha korada [mailto:swe...@gm...]=20 > Inviato: mercoled=EC 17 ottobre 2007 6.57 > A: p.l...@ci... > Cc: PLIB Users > Oggetto: Re: [Plib-users] R: How to clip an area > =09 > =09 >=20 >=20 > Hi, >=20 > The concept you have sent is what we are expecting to implement. > =20 > 135=B0 > __________________ > \45=B0 \ 45=B0 /45=B0/ > \ \ / / > \ \ / / > \ \/ / > \/ >=20 > =20 >=20 > We r very new to plib, and we r using plib as a=20 > standerad lib for flightgear. >=20 > In my code glviewport is in reshape funtion of flightgear. i.e., >=20 > glutReshapeFunc( fgReshape ); >=20 > void fgReshape( int width, int height )=20 > { > int view_h; > if ( (!fgGetBool("/sim/virtual-cockpit"))&&=20 > fgPanelVisible() && idle_state =3D=3D 1000 ) > { > view_h =3D (int)(height *=20 > (globals->get_current_panel()->getViewHeight() -=20 > =20 > globals->get_current_panel()->getYOffset()) / 768.0); > }=20 > else=20 > { > view_h =3D height; > } > =20 > glViewport( 0, (GLint)(height - view_h),=20 > (GLint)(width), (GLint)(view_h) );=20 >=20 > fgSetInt("/sim/startup/xsize", width); > fgSetInt("/sim/startup/ysize", height); > guiInitMouse(width, height); >=20 > // for all views > FGViewMgr *viewmgr =3D globals->get_viewmgr(); > if (viewmgr) > { > for ( int i =3D 0; i < viewmgr->size(); ++i )=20 > { > =20 > viewmgr->get_view(i)->set_aspect_ratio((float)view_h / (float)width);=20 > } > ssgSetFOV(=20 > viewmgr->get_current_view()->get_h_fov(),viewmgr->get_current_ > view()->get_v_fov() ); > =20 > #ifdef FG_USE_CLOUDS_3D > sgClouds3d->Resize(=20 > viewmgr->get_current_view()->get_h_fov(),=20 > viewmgr->get_current_view()->get_v_fov() ); > #endif > } > fgHUDReshape(); > =20 > } >=20 > and ssgCullAndDraw(.....) is calling in fgrender=20 > function which is infinitely calling. Now we are > confused to where put the code which you have sent(=20 > below ). only in reshape function we are calling > glviewport. >=20 > glViewport( 0, 0, w/3, h ); > ssgSetFrustum( <leftmost frustum params> ); > ssgCullAndDraw(...); >=20 > glViewport( w/3, 0, w/3, h ); > ssgSetFrustum( <center frustum params> ); > ssgCullAndDraw(...); >=20 > glViewport( 2*w/3, 0, w/3, h ); > ssgSetFrustum( <rightmost frustum params> ); > ssgCullAndDraw(...); >=20 > And Calculation of=20 >=20 > void calcOffAxisView( > // input args > sgVec3 screen[4], // the four screen corner=20 > positions (x,y,z), > // fill entries SC_UL, SC_UR,=20 > SC_LL, and SC_LR > sgVec3 eyepos, // eye position (x,y,z)=20 > // screen and eyepos have to be=20 > in the same coordinate system > // (x+ right, y+ up, z+ out of=20 > the screen) > float near_clip, float far_clip, // near and=20 > far clipping planes=20 > // output args > float *left, float *right, float *bottom, float=20 > *top // first sixargs to ssgSetFrustum, > =20 > // the last twoare near_clip and far_clip=20 > ) >=20 > we are put in ssgContext.cxx. >=20 > Now the problem is where to call this function and what=20 > are the value of sgVec3 screen[4] and > sgVec3 eyepos how to find this. >=20 > we are expecting your reply. > Thankyou very much. >=20 > Regards, > swetha. >=20 >=20 > =20 > =20 > On 10/15/07, Paolo Leoncini <p.l...@ci...=20 > > wrote:=20 >=20 > Rather than reasoning in terms of=20 > clipping, it seems to me that you have to > setup an off-axis projection=20 > =09 > (http://www.opengl.org/resources/faq/technical/transformations > .htm#tran0080=20 > <http://www.opengl.org/resources/faq/technical/transformations > .htm#tran0080> ) > . > =09 > 135=B0 > __________________ > \45=B0 \ 45=B0 /45=B0 /=20 > \ \ / / > \ \ / / > \ \/ / > \/ > =09 > The left- and right-most are off-axis=20 > projections (to be set up through > OpenGL's glFrustum or Plib's=20 > ssgSetFrustum), the center one is on-axis ( i.e. > the classic one set up through OpenGL's=20 > gluProjection or Plib's ssgSetFOV). > =09 > So the sequence of operation would be=20 > the following: > =09 > glViewport( 0, 0, w/3, h ); > ssgSetFrustum( <leftmost frustum params> );=20 > ssgCullAndDraw(...); > =09 > glViewport( w/3, 0, w/3, h ); > ssgSetFrustum( <center frustum params> ); > ssgCullAndDraw(...); > =09 > glViewport( 2*w/3, 0, w/3, h ); > ssgSetFrustum( <rightmost frustum params> );=20 > ssgCullAndDraw(...); > =09 > In order to calculate proper arguments=20 > to ssgSetFrustum( left, right, > bottom, top, zNear, zFar) as the given=20 > FoV partitioning you could search for > keywords glfrustum and off-axis=20 > projection, or tiled projection.=20 > =09 > If you prefer, just use to code below.=20 > You nave to find how to split you > 135=B0 FoV screen into 3x45=B0 screens=20 > (i.e. the four corners of each projection > surface) in terms of (ul,ur,ll,lr)=20 > corner positions - and set eyepos as to=20 > comprise the 135=B0 screen. It's not=20 > important where the coordinate system > origin is wrt screen corner and eyepos,=20 > nor the units, but, for simplicity, > you could just put the coordinate=20 > system origin at the center of the center=20 > screen and find (ul,ur,ll,lr) and=20 > eyepos accordingly, or put it at eyepos > (eyepos (0,0,0)) and find (ul,ur,ll,lr)=20 > accordingly: > =09 > ul ur > +---+------+---+ > | | | | > +...+......+...+ > |\ |\ /| /|=20 > +--\+-\--/-+/--+ > ll lr\ \/ / > \/ > eyepos > =09 > enum {SC_UL, SC_UR, SC_LL, SC_LR}; //=20 > enum for specifying screen corner > //=20 > (Ux: upper, Lx: lower, xL: left, xR: > right) > =09 > void calcOffAxisView( > // input args > sgVec3 screen[4], // the four=20 > screen corner positions (x,y,z), > // fill entries=20 > SC_UL, SC_UR, SC_LL, and SC_LR > sgVec3 eyepos, // eye=20 > position (x,y,z)=20 > // screen and=20 > eyepos have to be in the same > coordinate system > // (x+ right,=20 > y+ up, z+ out of the screen) > float near_clip, float far_clip,=20 > // near and far clipping planes=20 > // output args > float *left, float *right, float=20 > *bottom, float *top // first six > args to ssgSetFrustum, > =20 > // the last two > are near_clip and far_clip=20 > ) > { > sgVec3 eyeToScreen, xProj, yProj, zProj; > float width, height, dist; > sgVec3 eyePos; > =09 > sgCopyVec3( eyePos, eyepos ); > // Calculate vector from eye to=20 > screen origin (lower left corner)=20 > sgSubVec3(eyeToScreen, eyePos,=20 > screen[SC_LL]); > // Calculate vectors from bottom=20 > left corner of screen that form > // the screen coordinate frame > sgSubVec3(xProj, screen[SC_LR],=20 > screen[SC_LL]);=20 > width =3D sgLengthVec3(xProj); > sgScaleVec3(xProj, SG_ONE / width); > sgSubVec3(yProj, screen[SC_UL],=20 > screen[SC_LL]); > height =3D sgLengthVec3(yProj); > sgScaleVec3(yProj, SG_ONE / height);=20 > sgVectorProductVec3(zProj, xProj, yProj); > =09 > // Now, specify an off-axis=20 > viewing frustum in order to define the > // viewing volume with respect=20 > to the user's eye position. > *left =3D=20 > sgScalarProductVec3(eyeToScreen, xProj);=20 > *right =3D width - *left; > bottom =3D=20 > sgScalarProductVec3(eyeToScreen, yProj); > *top =3D height - *bottom; > dist =3D=20 > sgScalarProductVec3(eyeToScreen, zProj); > float nc_over_d =3D near_clip / dist;=20 > *left *=3D -nc_over_d; > *right *=3D nc_over_d; > *bottom *=3D -nc_over_d; > *top *=3D nc_over_d; > } > =09 > Note that the code above is only valid=20 > for the tiling case (i.e. there's no=20 > screen rotation) - for arbitrary=20 > positioned screens there's an additional > matrix multiplication to take into=20 > account either in the projection or in > the modelview matrix (in this case, its=20 > inverse). > =09 > Greetings -=20 > =09 > Paolo Leoncini > =09 > =09 > ________________________________ > =09 > Da:=20 > pli...@li...=20 > [mailto:=20 > pli...@li...=20 > <mailto:pli...@li...> ] Per conto=20 > di swetha korada > Inviato: luned=EC 15 ottobre 2007 10.35 > A: pli...@li... > Oggetto: [Plib-users] How to=20 > clip an area=20 > =09 > =09 > Hi all, > =09 > I am using plib-1.8.2=20 > version.In that, I have set the horizonital > Field Of View(FOV) as 135 degrees.In=20 > that I have to render only first 45=20 > degrees area.So I need to clip next 90=20 > degrees.How to achieve this? > =09 > Hope any one will give reply as=20 > soon as possible. > =09 > Thanks And Regards, > swetha. > =09 > =09 > =09 > =09 > =09 > -------------------------------------------------------------- > -----------=20 > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to=20 > find problems? Stop. > Now Search log events and configuration=20 > files using AJAX and a browser. > Download your FREE copy of Splunk now=20 > >> http://get.splunk.com/ > _______________________________________________ > plib-users mailing list > pli...@li...=20 > =09 > https://lists.sourceforge.net/lists/listinfo/plib-users=20 > <https://lists.sourceforge.net/lists/listinfo/plib-users> |
From: swetha k. <swe...@gm...> - 2007-10-17 04:57:11
|
Hi, The concept you have sent is what we are expecting to implement. 135=B0 __________________ \45=B0 \ 45=B0 /45=B0/ \ \ / / \ \ / / \ \/ / \/ We r very new to plib, and we r using plib as a standerad lib for flightgear. In my code glviewport is in reshape funtion of flightgear. i.e., glutReshapeFunc( fgReshape ); void fgReshape( int width, int height ) { int view_h; if ( (!fgGetBool("/sim/virtual-cockpit"))&& fgPanelVisible() && idle_state =3D=3D 1000 ) { view_h =3D (int)(height * (globals->get_current_panel()->getViewHeight() - globals->get_current_panel()->getYOffset()) = / 768.0); } else { view_h =3D height; } glViewport( 0, (GLint)(height - view_h), (GLint)(width), (GLint)(view_h= ) ); fgSetInt("/sim/startup/xsize", width); fgSetInt("/sim/startup/ysize", height); guiInitMouse(width, height); // for all views FGViewMgr *viewmgr =3D globals->get_viewmgr(); if (viewmgr) { for ( int i =3D 0; i < viewmgr->size(); ++i ) { viewmgr->get_view(i)->set_aspect_ratio((float)view_h / (float)width); } ssgSetFOV( viewmgr->get_current_view()->get_h_fov(),viewmgr->get_current_view()->get_v= _fov() ); #ifdef FG_USE_CLOUDS_3D sgClouds3d->Resize( viewmgr->get_current_view()->get_h_fov(), viewmgr->get_current_view()->get_v_fov() ); #endif } fgHUDReshape(); } and ssgCullAndDraw(.....) is calling in fgrender function which is infinitely calling. Now we are confused to where put the code which you have sent( below ). only in reshap= e function we are calling glviewport. glViewport( 0, 0, w/3, h ); ssgSetFrustum( <leftmost frustum params> ); ssgCullAndDraw(...); glViewport( w/3, 0, w/3, h ); ssgSetFrustum( <center frustum params> ); ssgCullAndDraw(...); glViewport( 2*w/3, 0, w/3, h ); ssgSetFrustum( <rightmost frustum params> ); ssgCullAndDraw(...); And Calculation of void calcOffAxisView( // input args sgVec3 screen[4], // the four screen corner positions (x,y,z), // fill entries SC_UL, SC_UR, SC_LL, and SC_LR sgVec3 eyepos, // eye position (x,y,z) // screen and eyepos have to be in the same coordinate system // (x+ right, y+ up, z+ out of the screen) float near_clip, float far_clip, // near and far clipping planes // output args float *left, float *right, float *bottom, float *top // first sixargs to ssgSetFrustum, // the last twoare near_clip and far_clip ) we are put in ssgContext.cxx. Now the problem is where to call this function and what are the value of sgVec3 screen[4] and sgVec3 eyepos how to find this. we are expecting your reply. Thankyou very much. Regards, swetha. > > On 10/15/07, Paolo Leoncini <p.l...@ci... > wrote: > > > > Rather than reasoning in terms of clipping, it seems to me that you hav= e > > to > > setup an off-axis projection > > (http://www.opengl.org/resources/faq/technical/transformations.htm#tran= 0080 > > ) > > . > > > > 135=B0 > > __________________ > > \45=B0 \ 45=B0 /45=B0 / > > \ \ / / > > \ \ / / > > \ \/ / > > \/ > > > > The left- and right-most are off-axis projections (to be set up through > > OpenGL's glFrustum or Plib's ssgSetFrustum), the center one is on-axis = ( > > i.e. > > the classic one set up through OpenGL's gluProjection or Plib's > > ssgSetFOV). > > > > So the sequence of operation would be the following: > > > > glViewport( 0, 0, w/3, h ); > > ssgSetFrustum( <leftmost frustum params> ); > > ssgCullAndDraw(...); > > > > glViewport( w/3, 0, w/3, h ); > > ssgSetFrustum( <center frustum params> ); > > ssgCullAndDraw(...); > > > > glViewport( 2*w/3, 0, w/3, h ); > > ssgSetFrustum( <rightmost frustum params> ); > > ssgCullAndDraw(...); > > > > In order to calculate proper arguments to ssgSetFrustum( left, right, > > bottom, top, zNear, zFar) as the given FoV partitioning you could searc= h > > for > > keywords glfrustum and off-axis projection, or tiled projection. > > > > If you prefer, just use to code below. You nave to find how to split yo= u > > 135=B0 FoV screen into 3x45=B0 screens (i.e. the four corners of each > > projection > > surface) in terms of (ul,ur,ll,lr) corner positions - and set eyepos as > > to > > comprise the 135=B0 screen. It's not important where the coordinate sys= tem > > origin is wrt screen corner and eyepos, nor the units, but, for > > simplicity, > > you could just put the coordinate system origin at the center of the > > center > > screen and find (ul,ur,ll,lr) and eyepos accordingly, or put it at > > eyepos > > (eyepos (0,0,0)) and find (ul,ur,ll,lr) accordingly: > > > > ul ur > > +---+------+---+ > > | | | | > > +...+......+...+ > > |\ |\ /| /| > > +--\+-\--/-+/--+ > > ll lr\ \/ / > > \/ > > eyepos > > > > enum {SC_UL, SC_UR, SC_LL, SC_LR}; // enum for specifying screen corne= r > > // (Ux: upper, Lx: lower, xL: left, > > xR: > > right) > > > > void calcOffAxisView( > > // input args > > sgVec3 screen[4], // the four screen corner positions (x,y,z), > > // fill entries SC_UL, SC_UR, SC_LL, and SC_LR > > sgVec3 eyepos, // eye position (x,y,z) > > // screen and eyepos have to be in the same > > coordinate system > > // (x+ right, y+ up, z+ out of the screen) > > float near_clip, float far_clip, // near and far clipping plane= s > > > > // output args > > float *left, float *right, float *bottom, float *top // first > > six > > args to ssgSetFrustum, > > // the last > > two > > are near_clip and far_clip > > ) > > { > > sgVec3 eyeToScreen, xProj, yProj, zProj; > > float width, height, dist; > > sgVec3 eyePos; > > > > sgCopyVec3( eyePos, eyepos ); > > // Calculate vector from eye to screen origin (lower left corner= ) > > > > sgSubVec3(eyeToScreen, eyePos, screen[SC_LL]); > > // Calculate vectors from bottom left corner of screen that form > > // the screen coordinate frame > > sgSubVec3(xProj, screen[SC_LR], screen[SC_LL]); > > width =3D sgLengthVec3(xProj); > > sgScaleVec3(xProj, SG_ONE / width); > > sgSubVec3(yProj, screen[SC_UL], screen[SC_LL]); > > height =3D sgLengthVec3(yProj); > > sgScaleVec3(yProj, SG_ONE / height); > > sgVectorProductVec3(zProj, xProj, yProj); > > > > // Now, specify an off-axis viewing frustum in order to define > > the > > // viewing volume with respect to the user's eye position. > > *left =3D sgScalarProductVec3(eyeToScreen, xProj); > > *right =3D width - *left; > > bottom =3D sgScalarProductVec3(eyeToScreen, yProj); > > *top =3D height - *bottom; > > dist =3D sgScalarProductVec3(eyeToScreen, zProj); > > float nc_over_d =3D near_clip / dist; > > *left *=3D -nc_over_d; > > *right *=3D nc_over_d; > > *bottom *=3D -nc_over_d; > > *top *=3D nc_over_d; > > } > > > > Note that the code above is only valid for the tiling case (i.e. there'= s > > no > > screen rotation) - for arbitrary positioned screens there's an > > additional > > matrix multiplication to take into account either in the projection or > > in > > the modelview matrix (in this case, its inverse). > > > > Greetings - > > > > Paolo Leoncini > > > > > > ________________________________ > > > > Da: pli...@li... > > [mailto: pli...@li...] Per conto di swetha > > korada > > Inviato: luned=EC 15 ottobre 2007 10.35 > > A: pli...@li... > > Oggetto: [Plib-users] How to clip an area > > > > > > Hi all, > > > > I am using plib-1.8.2 version.In that, I have set the > > horizonital > > Field Of View(FOV) as 135 degrees.In that I have to render only first 4= 5 > > > > degrees area.So I need to clip next 90 degrees.How to achieve this? > > > > Hope any one will give reply as soon as possible. > > > > Thanks And Regards, > > swetha. > > > > > > > > > > -----------------------------------------------------------------------= -- > > > > This SF.net email is sponsored by: Splunk Inc. > > Still grepping through log files to find problems? Stop. > > Now Search log events and configuration files using AJAX and a browser. > > Download your FREE copy of Splunk now >> http://get.splunk.com/ > > _______________________________________________ > > plib-users mailing list > > pli...@li... > > https://lists.sourceforge.net/lists/listinfo/plib-users > > > > |
From: swetha k. <swe...@gm...> - 2007-10-16 08:45:48
|
Hi, We are using flightgear-0.9.4 version. We are running this flightgear in three pcs and projecting this on big curved 135 deg screen using three projectors.FOV in three is 45 deg and viewoffset that is camera view in flightgear is 45 in left, 0 in center,-45 in right so that it will cover full 135 deg fov. But problem is when pitch up, terrain is not coming straight( Bow like imag= e is coming i.e, right and left terrain up and the center is down). To remove this problem we r planning to set 135 deg FOV in three and clip 9= 0 in three as shown below and render only 45 deg. 135=B0 -------->For left __________________ \45=B0 \ 45=B0 /45=B0 / \ \----/---/ \ \--/--/ \ \/-/ \/ 135=B0 --------->for Center __________________ \45=B0 \ 45=B0 /45=B0 / \--- \ /---/ \-- \ /--/ \--\/-/ \/ 135=B0 --------->for right __________________ \45=B0 \ 45=B0 /45=B0 / \--- \----/ / \-- \--/ / \--\/ / \/ In flightgear we can directly give FOV in option that will go to plib so there we need to change this.we r new to plib. please give solution to achive this. Thanku for giving quick response. regards, swetha. On 10/15/07, Paolo Leoncini <p.l...@ci...> wrote: > > Rather than reasoning in terms of clipping, it seems to me that you have > to > setup an off-axis projection > ( > http://www.opengl.org/resources/faq/technical/transformations.htm#tran008= 0 > ) > . > > 135=B0 > __________________ > \45=B0 \ 45=B0 /45=B0 / > \ \ / / > \ \ / / > \ \/ / > \/ > > The left- and right-most are off-axis projections (to be set up through > OpenGL's glFrustum or Plib's ssgSetFrustum), the center one is on-axis ( > i.e. > the classic one set up through OpenGL's gluProjection or Plib's > ssgSetFOV). > > So the sequence of operation would be the following: > > glViewport( 0, 0, w/3, h ); > ssgSetFrustum( <leftmost frustum params> ); > ssgCullAndDraw(...); > > glViewport( w/3, 0, w/3, h ); > ssgSetFrustum( <center frustum params> ); > ssgCullAndDraw(...); > > glViewport( 2*w/3, 0, w/3, h ); > ssgSetFrustum( <rightmost frustum params> ); > ssgCullAndDraw(...); > > In order to calculate proper arguments to ssgSetFrustum( left, right, > bottom, top, zNear, zFar) as the given FoV partitioning you could search > for > keywords glfrustum and off-axis projection, or tiled projection. > > If you prefer, just use to code below. You nave to find how to split you > 135=B0 FoV screen into 3x45=B0 screens (i.e. the four corners of each > projection > surface) in terms of (ul,ur,ll,lr) corner positions - and set eyepos as t= o > > comprise the 135=B0 screen. It's not important where the coordinate syste= m > origin is wrt screen corner and eyepos, nor the units, but, for > simplicity, > you could just put the coordinate system origin at the center of the > center > screen and find (ul,ur,ll,lr) and eyepos accordingly, or put it at eyepos > (eyepos (0,0,0)) and find (ul,ur,ll,lr) accordingly: > > ul ur > +---+------+---+ > | | | | > +...+......+...+ > |\ |\ /| /| > +--\+-\--/-+/--+ > ll lr\ \/ / > \/ > eyepos > > enum {SC_UL, SC_UR, SC_LL, SC_LR}; // enum for specifying screen corner > // (Ux: upper, Lx: lower, xL: left, xR= : > right) > > void calcOffAxisView( > // input args > sgVec3 screen[4], // the four screen corner positions (x,y,z), > // fill entries SC_UL, SC_UR, SC_LL, and SC_LR > sgVec3 eyepos, // eye position (x,y,z) > // screen and eyepos have to be in the same > coordinate system > // (x+ right, y+ up, z+ out of the screen) > float near_clip, float far_clip, // near and far clipping planes > // output args > float *left, float *right, float *bottom, float *top // first six > args to ssgSetFrustum, > // the last tw= o > are near_clip and far_clip > ) > { > sgVec3 eyeToScreen, xProj, yProj, zProj; > float width, height, dist; > sgVec3 eyePos; > > sgCopyVec3( eyePos, eyepos ); > // Calculate vector from eye to screen origin (lower left corner) > sgSubVec3(eyeToScreen, eyePos, screen[SC_LL]); > // Calculate vectors from bottom left corner of screen that form > // the screen coordinate frame > sgSubVec3(xProj, screen[SC_LR], screen[SC_LL]); > width =3D sgLengthVec3(xProj); > sgScaleVec3(xProj, SG_ONE / width); > sgSubVec3(yProj, screen[SC_UL], screen[SC_LL]); > height =3D sgLengthVec3(yProj); > sgScaleVec3(yProj, SG_ONE / height); > sgVectorProductVec3(zProj, xProj, yProj); > > // Now, specify an off-axis viewing frustum in order to define the > // viewing volume with respect to the user's eye position. > *left =3D sgScalarProductVec3(eyeToScreen, xProj); > *right =3D width - *left; > bottom =3D sgScalarProductVec3(eyeToScreen, yProj); > *top =3D height - *bottom; > dist =3D sgScalarProductVec3(eyeToScreen, zProj); > float nc_over_d =3D near_clip / dist; > *left *=3D -nc_over_d; > *right *=3D nc_over_d; > *bottom *=3D -nc_over_d; > *top *=3D nc_over_d; > } > > Note that the code above is only valid for the tiling case (i.e. there's > no > screen rotation) - for arbitrary positioned screens there's an additional > matrix multiplication to take into account either in the projection or in > the modelview matrix (in this case, its inverse). > > Greetings - > > Paolo Leoncini > > > ________________________________ > > Da: pli...@li... > [mailto: pli...@li...] Per conto di swetha > korada > Inviato: luned=EC 15 ottobre 2007 10.35 > A: pli...@li... > Oggetto: [Plib-users] How to clip an area > > > Hi all, > > I am using plib-1.8.2 version.In that, I have set the > horizonital > Field Of View(FOV) as 135 degrees.In that I have to render only first 45 > degrees area.So I need to clip next 90 degrees.How to achieve this? > > Hope any one will give reply as soon as possible. > > Thanks And Regards, > swetha. > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > plib-users mailing list > pli...@li... > https://lists.sourceforge.net/lists/listinfo/plib-users > |
From: Paolo L. <p.l...@ci...> - 2007-10-15 11:55:02
|
Rather than reasoning in terms of clipping, it seems to me that you have = to setup an off-axis projection (http://www.opengl.org/resources/faq/technical/transformations.htm#tran00= 80) . 135=B0 __________________ \45=B0 \ 45=B0 /45=B0 / \ \ / / \ \ / / \ \/ / \/ The left- and right-most are off-axis projections (to be set up through OpenGL's glFrustum or Plib's ssgSetFrustum), the center one is on-axis = (i.e. the classic one set up through OpenGL's gluProjection or Plib's = ssgSetFOV). So the sequence of operation would be the following: glViewport( 0, 0, w/3, h ); ssgSetFrustum( <leftmost frustum params> ); ssgCullAndDraw(...); glViewport( w/3, 0, w/3, h ); ssgSetFrustum( <center frustum params> ); ssgCullAndDraw(...); glViewport( 2*w/3, 0, w/3, h ); ssgSetFrustum( <rightmost frustum params> ); ssgCullAndDraw(...); In order to calculate proper arguments to ssgSetFrustum( left, right, bottom, top, zNear, zFar) as the given FoV partitioning you could search = for keywords glfrustum and off-axis projection, or tiled projection. If you prefer, just use to code below. You nave to find how to split you 135=B0 FoV screen into 3x45=B0 screens (i.e. the four corners of each = projection surface) in terms of (ul,ur,ll,lr) corner positions - and set eyepos as = to comprise the 135=B0 screen. It's not important where the coordinate = system origin is wrt screen corner and eyepos, nor the units, but, for = simplicity, you could just put the coordinate system origin at the center of the = center screen and find (ul,ur,ll,lr) and eyepos accordingly, or put it at = eyepos (eyepos (0,0,0)) and find (ul,ur,ll,lr) accordingly: ul ur +---+------+---+ | | | | +...+......+...+ |\ |\ /| /| +--\+-\--/-+/--+ ll lr\ \/ / \/ eyepos enum {SC_UL, SC_UR, SC_LL, SC_LR}; // enum for specifying screen corner // (Ux: upper, Lx: lower, xL: left, = xR: right) void calcOffAxisView( // input args sgVec3 screen[4], // the four screen corner positions (x,y,z), // fill entries SC_UL, SC_UR, SC_LL, and SC_LR sgVec3 eyepos, // eye position (x,y,z) // screen and eyepos have to be in the same coordinate system // (x+ right, y+ up, z+ out of the screen) float near_clip, float far_clip, // near and far clipping planes // output args float *left, float *right, float *bottom, float *top // first six args to ssgSetFrustum, // the last = two are near_clip and far_clip ) { sgVec3 eyeToScreen, xProj, yProj, zProj; float width, height, dist; sgVec3 eyePos; sgCopyVec3( eyePos, eyepos ); // Calculate vector from eye to screen origin (lower left corner) sgSubVec3(eyeToScreen, eyePos, screen[SC_LL]); // Calculate vectors from bottom left corner of screen that form // the screen coordinate frame sgSubVec3(xProj, screen[SC_LR], screen[SC_LL]); width =3D sgLengthVec3(xProj); sgScaleVec3(xProj, SG_ONE / width); sgSubVec3(yProj, screen[SC_UL], screen[SC_LL]); height =3D sgLengthVec3(yProj); sgScaleVec3(yProj, SG_ONE / height); sgVectorProductVec3(zProj, xProj, yProj); // Now, specify an off-axis viewing frustum in order to define the // viewing volume with respect to the user's eye position. *left =3D sgScalarProductVec3(eyeToScreen, xProj); *right =3D width - *left; bottom =3D sgScalarProductVec3(eyeToScreen, yProj); *top =3D height - *bottom; dist =3D sgScalarProductVec3(eyeToScreen, zProj); float nc_over_d =3D near_clip / dist; *left *=3D -nc_over_d; *right *=3D nc_over_d; *bottom *=3D -nc_over_d; *top *=3D nc_over_d; } Note that the code above is only valid for the tiling case (i.e. there's = no screen rotation) - for arbitrary positioned screens there's an = additional matrix multiplication to take into account either in the projection or = in the modelview matrix (in this case, its inverse). Greetings - Paolo Leoncini ________________________________ Da: pli...@li... [mailto:pli...@li...] Per conto di swetha = korada Inviato: luned=EC 15 ottobre 2007 10.35 A: pli...@li... Oggetto: [Plib-users] How to clip an area =09 =09 Hi all, =20 I am using plib-1.8.2 version.In that, I have set the horizonital Field Of View(FOV) as 135 degrees.In that I have to render only first 45 degrees area.So I need to clip next 90 degrees.How to achieve this? =20 Hope any one will give reply as soon as possible. =20 Thanks And Regards, swetha. =20 |
From: swetha k. <swe...@gm...> - 2007-10-15 08:34:38
|
Hi all, I am using plib-1.8.2 version.In that, I have set the horizonital Field Of View(FOV) as 135 degrees.In that I have to render only first 45 degrees area.So I need to clip next 90 degrees.How to achieve this? Hope any one will give reply as soon as possible. Thanks And Regards, swetha. |
From: John F. F. <joh...@cy...> - 2007-10-13 22:16:42
|
Lee, Thank you for your report. The problem is indeed known has has been fixed in the latest SVN version. Everybody else, Please, we NEED to get a release out NOW! - John -----Original Message----- From: Lee Duke Sent: Saturday, October 13, 2007 6:14 AM To: pli...@li... Subject: [Plib-users] Compiling plib-1.8.4 While trying to compile plib-1.8.4 I got the following errors: ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' The errors are easy enough to fix, but I thought someone would be interested in knowing about them. Lee Duke << File: ATT00011.htm >> << File: ATT00012.txt >> << File: ATT00013.txt >> |
From: Lee D. <du...@ra...> - 2007-10-13 11:35:38
|
While trying to compile plib-1.8.4 I got the following errors: ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' The errors are easy enough to fix, but I thought someone would be interested in knowing about them. Lee Duke |
From: John F. F. <joh...@cy...> - 2007-10-12 03:38:31
|
Larry, My first answer is that you should download the latest SVN version since that has fixed the problem. Failing that, you will need to edit "ssgaSky.h" and do this: (1) Change line 107 so that it and the surrounding code looks like this: class ssgaCelestialBodyList : private ssgSimpleList { public: ssgaCelestialBodyList ( int init = 3 ) : ssgSimpleList ( sizeof(ssgaCelestialBody*), init ) { } ~ssgaCelestialBodyList () { removeAll(); } int getNum (void) { return total ; } ssgaCelestialBody* get ( unsigned int n ) (2) Change line 195 so that it and the surrounding code look like this: class ssgaCloudLayerList : private ssgSimpleList { public: ssgaCloudLayerList ( int init = 3 ) : ssgSimpleList ( sizeof(ssgaCloudLayer*), init ) { } ~ssgaCloudLayerList () { removeAll(); } int getNum (void) { return total ; } ssgaCloudLayer* get ( unsigned int n ) That will fix your problem. - John -----Original Message----- From: Larry Wyble Sent: Thursday, October 11, 2007 6:03 PM To: pli...@li... Subject: [Plib-users] Fails on Make I get the following error when I make plib. I'm using plib-1.8.4 on Linux slackware version 12, kernel 2.6.21.5-smp. "HEP ME!" :) Thanks then mv -f ".deps/ssgaCelestialBody.Tpo" ".deps/ssgaCelestialBody.Po"; else rm -f ".deps/ssgaCelestialBody.Tpo"; exit 1; fi ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' make[2]: *** [ssgaCelestialBody.o] Error 1 make[2]: Leaving directory `/shared/src/plib-1.8.4/src/ssgAux' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/shared/src/plib-1.8.4/src' make: *** [all-recursive] Error 1 larrywyb@widgeteye:/shared/src/plib-1.8.4$ cat /proc/version Linux version 2.6.21.5-smp (root@midas) (gcc version 4.1.2) #2 SMP Tue Jun 19 14:58:11 CDT 2007 ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ plib-users mailing list pli...@li... https://lists.sourceforge.net/lists/listinfo/plib-users |
From: Larry W. <ll...@su...> - 2007-10-11 23:04:29
|
I get the following error when I make plib. I'm using plib-1.8.4 on Linux slackware version 12, kernel 2.6.21.5-smp. "HEP ME!" :) Thanks then mv -f ".deps/ssgaCelestialBody.Tpo" ".deps/ssgaCelestialBody.Po"; else rm -f ".deps/ssgaCelestialBody.Tpo"; exit 1; fi ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' make[2]: *** [ssgaCelestialBody.o] Error 1 make[2]: Leaving directory `/shared/src/plib-1.8.4/src/ssgAux' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/shared/src/plib-1.8.4/src' make: *** [all-recursive] Error 1 larrywyb@widgeteye:/shared/src/plib-1.8.4$ cat /proc/version Linux version 2.6.21.5-smp (root@midas) (gcc version 4.1.2) #2 SMP Tue Jun 19 14:58:11 CDT 2007 |
From: Larry W. <ll...@su...> - 2007-09-30 19:46:04
|
On Sun, 30 Sep 2007 13:35:38 -0500 "John F. Fay" <joh...@cy...> wrote: Thanks, I'm looking forward to it. I'm trying to build FlightGear. :) > Larry, > > It looks like you are using an old version of PLIB. I will > send you an up-to-date version privately. > > - John > > > -----Original Message----- > From: Larry Wyble > Sent: Sunday, September 30, 2007 12:27 PM > To: pli...@li... > Subject: [Plib-users] Compilation error > > > > I get the following error in the ssg section of the code when I do > make. What's happening? > > > Making all in ssgAux > make[2]: Entering directory `/shared/src/plib-1.8.4/src/ssgAux' > if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" > -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" > -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"plib\" -DVERSION=\"1.8.4\" > -DHAVE_LIBPTHREAD=1 -DHAVE_LIBGL=1 -DHAVE_LIBDL=1 -DSTDC_HEADERS=1 > -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 > -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 > -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -I. -I. > -I../../src/sg -I../../src/ssg -I../../src/util -g -O2 -Wall -MT > ssgaCelestialBody.o -MD -MP -MF ".deps/ssgaCelestialBody.Tpo" -c -o > ssgaCelestialBody.o ssgaCelestialBody.cxx; \ then mv -f > ".deps/ssgaCelestialBody.Tpo" ".deps/ssgaCelestialBody.Po"; else rm > -f ".deps/ssgaCelestialBody.Tpo"; exit 1; fi ssgaSky.h:107: error: > extra qualification 'ssgaCelestialBodyList::' on member > 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification > 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' make[2]: *** > [ssgaCelestialBody.o] Error 1 > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > plib-users mailing list > pli...@li... > https://lists.sourceforge.net/lists/listinfo/plib-users > > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > plib-users mailing list > pli...@li... > https://lists.sourceforge.net/lists/listinfo/plib-users |
From: John F. F. <joh...@cy...> - 2007-09-30 19:20:29
|
Larry, It looks like you are using an old version of PLIB. I will send you an up-to-date version privately. - John -----Original Message----- From: Larry Wyble Sent: Sunday, September 30, 2007 12:27 PM To: pli...@li... Subject: [Plib-users] Compilation error I get the following error in the ssg section of the code when I do make. What's happening? Making all in ssgAux make[2]: Entering directory `/shared/src/plib-1.8.4/src/ssgAux' if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"plib\" -DVERSION=\"1.8.4\" -DHAVE_LIBPTHREAD=1 -DHAVE_LIBGL=1 -DHAVE_LIBDL=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../src/sg -I../../src/ssg -I../../src/util -g -O2 -Wall -MT ssgaCelestialBody.o -MD -MP -MF ".deps/ssgaCelestialBody.Tpo" -c -o ssgaCelestialBody.o ssgaCelestialBody.cxx; \ then mv -f ".deps/ssgaCelestialBody.Tpo" ".deps/ssgaCelestialBody.Po"; else rm -f ".deps/ssgaCelestialBody.Tpo"; exit 1; fi ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' make[2]: *** [ssgaCelestialBody.o] Error 1 ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ plib-users mailing list pli...@li... https://lists.sourceforge.net/lists/listinfo/plib-users |
From: Larry W. <ll...@su...> - 2007-09-30 17:29:27
|
I get the following error in the ssg section of the code when I do make. What's happening? Making all in ssgAux make[2]: Entering directory `/shared/src/plib-1.8.4/src/ssgAux' if g++ -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"plib\" -DVERSION=\"1.8.4\" -DHAVE_LIBPTHREAD=1 -DHAVE_LIBGL=1 -DHAVE_LIBDL=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -I. -I. -I../../src/sg -I../../src/ssg -I../../src/util -g -O2 -Wall -MT ssgaCelestialBody.o -MD -MP -MF ".deps/ssgaCelestialBody.Tpo" -c -o ssgaCelestialBody.o ssgaCelestialBody.cxx; \ then mv -f ".deps/ssgaCelestialBody.Tpo" ".deps/ssgaCelestialBody.Po"; else rm -f ".deps/ssgaCelestialBody.Tpo"; exit 1; fi ssgaSky.h:107: error: extra qualification 'ssgaCelestialBodyList::' on member 'ssgaCelestialBodyList' ssgaSky.h:195: error: extra qualification 'ssgaCloudLayerList::' on member 'ssgaCloudLayerList' make[2]: *** [ssgaCelestialBody.o] Error 1 |
From: Steve B. <st...@sj...> - 2007-09-30 14:41:39
|
PLIB is heavily object-oriented. It's design fundamentally leverages things like virtual class member functions and inheritance that don't translate well into the Visual Basic environment - but which are very useful in a C++ environment. It's certainly not just a matter of calling C++ functions via the DLL mechanism. It would be very tough indeed to integrate PLIB into Visual Basic - and you'd have to learn C++ and write a substantial amount of C++ interface code to stand a chance of doing it. PLIB is designed to help and encourage the writing of portable, interactive applications (that's what 'P' stands for - Portability LIBrary!). Since Visual Basic is about the least portable language on the planet - and also one that is poor at interactive applications like games and simulation - we strongly discourage it's use. We want people to write software that will run on Windows, Linux, BSD-Unix, SGI Unix, Solaris, Mac OSX...and anything else we can think of. Supporting Visual Basic is the antithesis of our goals here! It's the very last thing the PLIB team should be spending its efforts on! So, sadly, if you really must write in Visual Basic - find another graphics API. Steve. Stuart McDonald wrote: > Hi Sherif, > > I too have no real knowledge of VB, but if you are looking for where to > start then you need to give some more information e.g. > 1) Are you an experienced programmer, complete beginner, somewhere in > between? > 2) Are you using VB because you know it well? Or for some other reason? > 3) What are you trying to achieve? Would you be happy with a simple > pacman game? Are you wanting to do something much bigger? > 4) etc. etc. > > Because depending on the answers to things like this (and may other > things) my advice would be vary greatly. > > Regards, > > Stuart. > > > Sherif Omran wrote: >> Hello John, >> >> Thank you for your warm welcoming and email. Yes it is possible to >> call C++ functions, if they are packed in a dll. Is PLIB a dll? >> It would be a little bit difficult at the beginning but once they are >> mapped to a VB module, then i can deal with it, but actually i don't >> know where to start for game programming and what tools do i need >> because when i search online i get lost. >> >> Could you please lead me? >> >> kind regards, >> Sherif >> >> >> */"John F. Fay" <joh...@cy...>/* wrote: >> >> Sherif, >> >> Hello and welcome to the PLIB community. >> >> PLIB is written in C++. Early on, the owner decided that he would >> keep it >> in that language, so there are no plans for the PLIB community to >> write >> wrappers for other languages. >> >> That said, I have no knowledge of Visual Basic. If it is possible >> to call >> C++ functions and declare C++ objects in Visual Basic programs, >> then you >> can probably use PLIB. Otherwise you may wish to look elsewhere. >> >> - John >> >> -----Original Message----- >> From: Sherif Omran >> Sent: Saturday, September 29, 2007 5:38 AM >> To: pli...@li... >> Subject: [Plib-users] Visual Basic >> >> Hello all, >> >> is it possible to use the plib with visual basic under windows, >> and if >> not what do you suggest? >> >> thanks >> Sherif Omran >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > plib-users mailing list > pli...@li... > https://lists.sourceforge.net/lists/listinfo/plib-users |
From: Stuart M. <stu...@bl...> - 2007-09-29 20:38:57
|
Hi Sherif, I too have no real knowledge of VB, but if you are looking for where to start then you need to give some more information e.g. 1) Are you an experienced programmer, complete beginner, somewhere in between? 2) Are you using VB because you know it well? Or for some other reason? 3) What are you trying to achieve? Would you be happy with a simple pacman game? Are you wanting to do something much bigger? 4) etc. etc. Because depending on the answers to things like this (and may other things) my advice would be vary greatly. Regards, Stuart. Sherif Omran wrote: > Hello John, > > Thank you for your warm welcoming and email. Yes it is possible to > call C++ functions, if they are packed in a dll. Is PLIB a dll? > It would be a little bit difficult at the beginning but once they are > mapped to a VB module, then i can deal with it, but actually i don't > know where to start for game programming and what tools do i need > because when i search online i get lost. > > Could you please lead me? > > kind regards, > Sherif > > > */"John F. Fay" <joh...@cy...>/* wrote: > > Sherif, > > Hello and welcome to the PLIB community. > > PLIB is written in C++. Early on, the owner decided that he would > keep it > in that language, so there are no plans for the PLIB community to > write > wrappers for other languages. > > That said, I have no knowledge of Visual Basic. If it is possible > to call > C++ functions and declare C++ objects in Visual Basic programs, > then you > can probably use PLIB. Otherwise you may wish to look elsewhere. > > - John > > -----Original Message----- > From: Sherif Omran > Sent: Saturday, September 29, 2007 5:38 AM > To: pli...@li... > Subject: [Plib-users] Visual Basic > > Hello all, > > is it possible to use the plib with visual basic under windows, > and if > not what do you suggest? > > thanks > Sherif Omran > |
From: Sherif O. <she...@ya...> - 2007-09-29 13:57:10
|
Hello John, Thank you for your warm welcoming and email. Yes it is possible to call C++ functions, if they are packed in a dll. Is PLIB a dll? It would be a little bit difficult at the beginning but once they are mapped to a VB module, then i can deal with it, but actually i don't know where to start for game programming and what tools do i need because when i search online i get lost. Could you please lead me? kind regards, Sherif "John F. Fay" <joh...@cy...> wrote: Sherif, Hello and welcome to the PLIB community. PLIB is written in C++. Early on, the owner decided that he would keep it in that language, so there are no plans for the PLIB community to write wrappers for other languages. That said, I have no knowledge of Visual Basic. If it is possible to call C++ functions and declare C++ objects in Visual Basic programs, then you can probably use PLIB. Otherwise you may wish to look elsewhere. - John -----Original Message----- From: Sherif Omran Sent: Saturday, September 29, 2007 5:38 AM To: pli...@li... Subject: [Plib-users] Visual Basic Hello all, is it possible to use the plib with visual basic under windows, and if not what do you suggest? thanks Sherif Omran --------------------------------- Tonight's top picks. What will you watch tonight? Preview the hottest shows on Yahoo! TV. << File: ATT00046.htm >> << File: ATT00047.txt >> << File: ATT00048.txt >> ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ plib-users mailing list pli...@li... https://lists.sourceforge.net/lists/listinfo/plib-users --------------------------------- Tonight's top picks. What will you watch tonight? Preview the hottest shows on Yahoo! TV. |
From: John F. F. <joh...@cy...> - 2007-09-29 13:53:38
|
Sherif, Hello and welcome to the PLIB community. PLIB is written in C++. Early on, the owner decided that he would keep it in that language, so there are no plans for the PLIB community to write wrappers for other languages. That said, I have no knowledge of Visual Basic. If it is possible to call C++ functions and declare C++ objects in Visual Basic programs, then you can probably use PLIB. Otherwise you may wish to look elsewhere. - John -----Original Message----- From: Sherif Omran Sent: Saturday, September 29, 2007 5:38 AM To: pli...@li... Subject: [Plib-users] Visual Basic Hello all, is it possible to use the plib with visual basic under windows, and if not what do you suggest? thanks Sherif Omran --------------------------------- Tonight's top picks. What will you watch tonight? Preview the hottest shows on Yahoo! TV. << File: ATT00046.htm >> << File: ATT00047.txt >> << File: ATT00048.txt >> |