alliance-cvs Mailing List for Alliance Productions (Page 3)
Status: Pre-Alpha
Brought to you by:
kazan
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(13) |
Nov
(261) |
Dec
(3) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(49) |
Feb
(51) |
Mar
(11) |
Apr
|
May
|
Jun
(11) |
Jul
|
Aug
|
Sep
(7) |
Oct
(7) |
Nov
(24) |
Dec
|
2004 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(142) |
Aug
(95) |
Sep
(14) |
Oct
|
Nov
|
Dec
(3) |
2005 |
Jan
|
Feb
|
Mar
(29) |
Apr
(2) |
May
|
Jun
|
Jul
(2) |
Aug
(46) |
Sep
(5) |
Oct
(1) |
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
(7) |
Apr
|
May
(33) |
Jun
(62) |
Jul
(43) |
Aug
|
Sep
|
Oct
(7) |
Nov
|
Dec
|
2008 |
Jan
(32) |
Feb
(33) |
Mar
|
Apr
|
May
(10) |
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
|
Nov
(8) |
Dec
|
From: <ka...@us...> - 2008-02-09 15:58:42
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv28085 Modified Files: pcs2.cpp pcs2.h versions.cpp Log Message: 2.0 Final Public Build Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.73 retrieving revision 1.74 diff -C2 -d -r1.73 -r1.74 *** pcs2.cpp 3 Feb 2008 21:45:23 -0000 1.73 --- pcs2.cpp 9 Feb 2008 15:58:44 -0000 1.74 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.74 2008/02/09 15:58:44 kazan + * 2.0 Final Public Build + * * Revision 1.73 2008/02/03 21:45:23 kazan * Call main_panel::SignalModelChange("", true) to reset the view without changing the currently loaded model. *************** *** 301,306 **** int current_model_file; ! wxString BUILD_TYPE = "RC2d"; ! wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC5"; //op_gl_funcs GLFunctions; --- 304,317 ---- int current_model_file; ! #ifdef PUBLIC_RELEASE ! wxString BUILD_TYPE = "Stable"; ! wxString BUILD_VER = "2.0"; ! #else ! wxString BUILD_TYPE = "Alpha"; ! wxString BUILD_VER = "2.1"; ! #endif ! ! wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 Final"; ! //op_gl_funcs GLFunctions; Index: pcs2.h =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.h,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** pcs2.h 3 Feb 2008 21:45:23 -0000 1.47 --- pcs2.h 9 Feb 2008 15:58:44 -0000 1.48 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.48 2008/02/09 15:58:44 kazan + * 2.0 Final Public Build + * * Revision 1.47 2008/02/03 21:45:23 kazan * Call main_panel::SignalModelChange("", true) to reset the view without changing the currently loaded model. *************** *** 207,210 **** --- 210,216 ---- extern op_gl_funcs GLFunctions;*/ + // only uncomment the following for actual releases + #define PUBLIC_RELEASE + extern wxString PCS2_VERSION; extern wxString PCS2_COMP_VERSION; Index: versions.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/versions.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** versions.cpp 18 Jan 2008 18:39:27 -0000 1.3 --- versions.cpp 9 Feb 2008 15:58:44 -0000 1.4 *************** *** 7,18 **** #include <wx/wx.h> wxString _BUILD_TIME_ = wxString(__DATE__) + " " + wxString(__TIME__); extern wxString BUILD_TYPE; #ifdef _DEBUG ! wxString PCS2_VERSION = "PCS 2.0 " + BUILD_TYPE + " Debug(" + _BUILD_TIME_ + ")"; #else ! wxString PCS2_VERSION = "PCS 2.0 " + BUILD_TYPE + " Release(" + _BUILD_TIME_ + ")"; #endif --- 7,26 ---- #include <wx/wx.h> + #include "pcs2.h" wxString _BUILD_TIME_ = wxString(__DATE__) + " " + wxString(__TIME__); extern wxString BUILD_TYPE; + extern wxString BUILD_VER; #ifdef _DEBUG ! wxString PCS2_VERSION = "PCS " + BUILD_VER + " " + BUILD_TYPE + " Debug(" + _BUILD_TIME_ + ")"; #else ! ! #ifdef PUBLIC_RELEASE ! wxString PCS2_VERSION = "PCS " + BUILD_VER + " " + BUILD_TYPE + " (" + _BUILD_TIME_ + ")"; ! #else ! wxString PCS2_VERSION = "PCS " + BUILD_VER + " " + BUILD_TYPE + " Release(" + _BUILD_TIME_ + ")"; ! #endif ! #endif |
From: <ka...@us...> - 2008-02-07 18:48:52
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv22210 Modified Files: wxGL_PMFCanvas.cpp Log Message: remove unnecessary trailing else Index: wxGL_PMFCanvas.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/wxGL_PMFCanvas.cpp,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** wxGL_PMFCanvas.cpp 7 Feb 2008 18:45:55 -0000 1.41 --- wxGL_PMFCanvas.cpp 7 Feb 2008 18:48:50 -0000 1.42 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.42 2008/02/07 18:48:50 kazan + * remove unnecessary trailing else + * * Revision 1.41 2008/02/07 18:45:55 kazan * Restore non-VBO omnipoints renderer - used if VBO extension check fails *************** *** 316,320 **** if (GLEE_ARB_vertex_buffer_object) omni_point_buffer = sphere.make_vertex_buffer(3); - else --- 319,322 ---- |
From: <ka...@us...> - 2008-02-07 18:46:02
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv19724 Modified Files: wxGL_PMFCanvas.cpp Log Message: Restore non-VBO omnipoints renderer - used if VBO extension check fails Index: wxGL_PMFCanvas.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/wxGL_PMFCanvas.cpp,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** wxGL_PMFCanvas.cpp 19 Jan 2008 01:55:50 -0000 1.40 --- wxGL_PMFCanvas.cpp 7 Feb 2008 18:45:55 -0000 1.41 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.41 2008/02/07 18:45:55 kazan + * Restore non-VBO omnipoints renderer - used if VBO extension check fails + * * Revision 1.40 2008/01/19 01:55:50 bobboau * modified the omnipoint geospheres to use VBOs, the geometry of these things is totaly static, so it makes sence to use them *************** *** 311,315 **** static geo_sphere sphere(3); ! omni_point_buffer = sphere.make_vertex_buffer(3); FreezeRender = false; --- 314,321 ---- static geo_sphere sphere(3); ! if (GLEE_ARB_vertex_buffer_object) ! omni_point_buffer = sphere.make_vertex_buffer(3); ! else ! FreezeRender = false; *************** *** 487,497 **** unsigned int j; ! glBindBuffer(GL_ARRAY_BUFFER, omni_point_buffer.buffer); ! pglLockArraysEXT( 0, omni_point_buffer.n_verts); ! ERROR_CHECK; ! glEnableClientState(GL_NORMAL_ARRAY); ! glEnableClientState(GL_VERTEX_ARRAY); ! glVertexPointer(3,GL_FLOAT, omni_point_buffer.vertex_size, (void*)NULL); ! glNormalPointer(GL_FLOAT, omni_point_buffer.vertex_size, (void*)(NULL + sizeof(vector3d))); for(i = 0; i<omni.point.size(); i++){ --- 493,506 ---- unsigned int j; ! if (GLEE_ARB_vertex_buffer_object) ! { ! glBindBuffer(GL_ARRAY_BUFFER, omni_point_buffer.buffer); ! pglLockArraysEXT( 0, omni_point_buffer.n_verts); ! ERROR_CHECK; ! glEnableClientState(GL_NORMAL_ARRAY); ! glEnableClientState(GL_VERTEX_ARRAY); ! glVertexPointer(3,GL_FLOAT, omni_point_buffer.vertex_size, (void*)NULL); ! glNormalPointer(GL_FLOAT, omni_point_buffer.vertex_size, (void*)(NULL + sizeof(vector3d))); ! } for(i = 0; i<omni.point.size(); i++){ *************** *** 510,535 **** omni.point[i][j].rad = model.get_avg_dimintion()/61.80f; ! glPushMatrix(); ! vector3d pnt = omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model); ! glTranslatef(pnt.x, pnt.y, pnt.z); ! if(omni.flags & OMNIPOINT_PATH){ ! //sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), model.get_avg_dimintion()/30.0f, 2, col*10); ! float r = model.get_avg_dimintion()/30.0f; ! glScalef(r,r,r); ! color col2 = col*10; ! glColor4ubv( (GLubyte*)col2.col); ! glDrawArrays(GL_TRIANGLES, 0, omni_point_buffer.n_verts); ! glScalef(1.0f/r,1.0f/r,1.0f/r); ! } ! glColor4ubv( (GLubyte*)col.col); ! glScalef(omni.point[i][j].rad, omni.point[i][j].rad, omni.point[i][j].rad); ! //sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), omni.point[i][j].rad, 2, col); ! glDrawArrays(GL_TRIANGLES, 0, omni_point_buffer.n_verts); ! glPopMatrix(); --- 519,553 ---- omni.point[i][j].rad = model.get_avg_dimintion()/61.80f; ! if (GLEE_ARB_vertex_buffer_object) ! { ! glPushMatrix(); ! vector3d pnt = omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model); ! glTranslatef(pnt.x, pnt.y, pnt.z); ! if(omni.flags & OMNIPOINT_PATH){ ! //sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), model.get_avg_dimintion()/30.0f, 2, col*10); ! float r = model.get_avg_dimintion()/30.0f; ! glScalef(r,r,r); ! color col2 = col*10; ! glColor4ubv( (GLubyte*)col2.col); ! glDrawArrays(GL_TRIANGLES, 0, omni_point_buffer.n_verts); ! glScalef(1.0f/r,1.0f/r,1.0f/r); ! } ! glColor4ubv( (GLubyte*)col.col); ! glScalef(omni.point[i][j].rad, omni.point[i][j].rad, omni.point[i][j].rad); ! //sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), omni.point[i][j].rad, 2, col); ! glDrawArrays(GL_TRIANGLES, 0, omni_point_buffer.n_verts); ! glPopMatrix(); ! } ! else ! { ! sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), omni.point[i][j].rad, 2, col); ! if(omni.flags & OMNIPOINT_PATH) ! sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), model.get_avg_dimintion()/30.0f, 2, col*10); ! } *************** *** 538,551 **** } ! glColor4ubv( (GLubyte*)color(255,255,255,255).col); ! pglUnlockArraysEXT(); ! glBindBuffer(GL_ARRAY_BUFFER, 0); ! ! glDisableClientState(GL_VERTEX_ARRAY); ! glDisableClientState(GL_NORMAL_ARRAY); ! ERROR_CHECK; GLfloat AmbientLight[4]={1.0f,1.0f,1.0f,1.0f}; --- 556,571 ---- } ! if (GLEE_ARB_vertex_buffer_object) ! { ! glColor4ubv( (GLubyte*)color(255,255,255,255).col); ! pglUnlockArraysEXT(); ! glBindBuffer(GL_ARRAY_BUFFER, 0); + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + ERROR_CHECK; + } GLfloat AmbientLight[4]={1.0f,1.0f,1.0f,1.0f}; |
From: <ka...@us...> - 2008-02-04 19:17:27
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv25377 Modified Files: tex_ctrl.cpp tex_ctrl.h Log Message: Fix VP Search resuming Index: tex_ctrl.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/tex_ctrl.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** tex_ctrl.cpp 4 Feb 2008 18:02:44 -0000 1.32 --- tex_ctrl.cpp 4 Feb 2008 19:17:29 -0000 1.33 *************** *** 10,13 **** --- 10,16 ---- * * $Log$ + * Revision 1.33 2008/02/04 19:17:29 kazan + * Fix VP Search resuming + * * Revision 1.32 2008/02/04 18:02:44 kazan * Dumbest typo that latest forever found while fixing the dumbest bug ever - VolitionPackfileReader::FindFileWild was case sensative.. causing PCS2 not to load textures in VPs when there was a case mismatch *************** *** 382,385 **** --- 385,389 ---- ILenum img_type; int filenum; + int curvp; int size; *************** *** 449,455 **** buffer = NULL; fname = texname; do { ! filenum = SearchVPs(vplists[j], paths[j], fname, size, buffer, rfname, filenum); if (filenum != -1) --- 453,460 ---- buffer = NULL; fname = texname; + curvp = 0; // curvp is used for resuming search do { ! filenum = SearchVPs(vplists[j], paths[j], fname, size, buffer, rfname, curvp, filenum); if (filenum != -1) *************** *** 480,483 **** --- 485,489 ---- delete[] buffer; buffer = NULL; + fname=texname; } *************** *** 523,527 **** // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ! int TextureControl::SearchVPs(const FileList &vp_list, kaz_string directory, kaz_string &filename, int &size, char* &buffer, kaz_string &rfname, int searchpos) { //FileList vp_list(directory, "*.vp"); --- 529,533 ---- // +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ! int TextureControl::SearchVPs(const FileList &vp_list, kaz_string directory, kaz_string &filename, int &size, char* &buffer, kaz_string &rfname, int &curvp, int searchpos) { //FileList vp_list(directory, "*.vp"); *************** *** 537,546 **** int filenum; ! for (int i = 0; i < vp_list.Size(); i++) { File = directory + vp_list[i]; filenum = SearchAVP(File, filename, size, buffer, rfname, searchpos); if (filenum != -1) return filenum; } --- 543,557 ---- int filenum; ! for (int i = curvp; i < vp_list.Size(); i++) { File = directory + vp_list[i]; filenum = SearchAVP(File, filename, size, buffer, rfname, searchpos); if (filenum != -1) + { + curvp = i; return filenum; + } + else + searchpos = 0; // reset search offset } Index: tex_ctrl.h =================================================================== RCS file: /cvsroot/alliance/pcs2/tex_ctrl.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tex_ctrl.h 14 Jan 2008 11:55:13 -0000 1.12 --- tex_ctrl.h 4 Feb 2008 19:17:29 -0000 1.13 *************** *** 10,13 **** --- 10,16 ---- * * $Log$ + * Revision 1.13 2008/02/04 19:17:29 kazan + * Fix VP Search resuming + * * Revision 1.12 2008/01/14 11:55:13 bobboau * syncroniseing with CVS, nothing important, invisible texture don't draw, and a few added utility functions for the string *************** *** 97,101 **** ! int SearchVPs(const FileList &vp_list, kaz_string directory, kaz_string &filename, int &size, char* &buffer, kaz_string &rfname, int searchpos=0); int SearchAVP(kaz_string &vp, kaz_string &filename, int &size, char* &buffer, kaz_string &rfname, int searchpos=0); --- 100,104 ---- ! int SearchVPs(const FileList &vp_list, kaz_string directory, kaz_string &filename, int &size, char* &buffer, kaz_string &rfname, int &curvp, int searchpos=0); int SearchAVP(kaz_string &vp, kaz_string &filename, int &size, char* &buffer, kaz_string &rfname, int searchpos=0); |
From: <ka...@us...> - 2008-02-04 18:02:45
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv27257 Modified Files: VPReader.cpp VPReader.h tex_ctrl.cpp Log Message: Dumbest typo that latest forever found while fixing the dumbest bug ever - VolitionPackfileReader::FindFileWild was case sensative.. causing PCS2 not to load textures in VPs when there was a case mismatch Index: VPReader.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/VPReader.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** VPReader.cpp 13 Jul 2007 11:31:04 -0000 1.9 --- VPReader.cpp 4 Feb 2008 18:02:44 -0000 1.10 *************** *** 10,13 **** --- 10,16 ---- * * $Log$ + * Revision 1.10 2008/02/04 18:02:44 kazan + * Dumbest typo that latest forever found while fixing the dumbest bug ever - VolitionPackfileReader::FindFileWild was case sensative.. causing PCS2 not to load textures in VPs when there was a case mismatch + * * Revision 1.9 2007/07/13 11:31:04 bobboau * added auto-extraction and external loading of textures in VPs, and a user defined temp directory. *************** *** 95,104 **** ! int VolitionPackfileReader::FildFildWild(kaz_string pattern, int start) { ! for (int i = start+1; i < HeaderData.direntries; i++) { ! if (wildcmp((char*)pattern.c_str(), Files[i].filename)) return i; } --- 98,107 ---- ! int VolitionPackfileReader::FindFileWild(kaz_string pattern, int start) { ! for (int i = start+1; i < HeaderData.direntries; i++) { ! if (wildcmp(strlwr((char*)pattern.c_str()), strlwr(Files[i].filename))) return i; } Index: VPReader.h =================================================================== RCS file: /cvsroot/alliance/pcs2/VPReader.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** VPReader.h 13 Jul 2007 11:31:04 -0000 1.6 --- VPReader.h 4 Feb 2008 18:02:44 -0000 1.7 *************** *** 10,13 **** --- 10,16 ---- * * $Log$ + * Revision 1.7 2008/02/04 18:02:44 kazan + * Dumbest typo that latest forever found while fixing the dumbest bug ever - VolitionPackfileReader::FindFileWild was case sensative.. causing PCS2 not to load textures in VPs when there was a case mismatch + * * Revision 1.6 2007/07/13 11:31:04 bobboau * added auto-extraction and external loading of textures in VPs, and a user defined temp directory. *************** *** 103,107 **** int FindFile(kaz_string filename); ! int FildFildWild(kaz_string pattern, int start=0); int NumFiles() --- 106,110 ---- int FindFile(kaz_string filename); ! int FindFileWild(kaz_string pattern, int start=0); int NumFiles() Index: tex_ctrl.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/tex_ctrl.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** tex_ctrl.cpp 11 Jan 2008 06:24:09 -0000 1.31 --- tex_ctrl.cpp 4 Feb 2008 18:02:44 -0000 1.32 *************** *** 10,13 **** --- 10,16 ---- * * $Log$ + * Revision 1.32 2008/02/04 18:02:44 kazan + * Dumbest typo that latest forever found while fixing the dumbest bug ever - VolitionPackfileReader::FindFileWild was case sensative.. causing PCS2 not to load textures in VPs when there was a case mismatch + * * Revision 1.31 2008/01/11 06:24:09 bobboau * fixing a spelling error, and modifyed the suggest box graphic a little *************** *** 550,554 **** { VolitionPackfileReader VPR(vp); ! int fileno = VPR.FildFildWild(filename + ".*", searchpos); if (fileno != -1) { --- 553,557 ---- { VolitionPackfileReader VPR(vp); ! int fileno = VPR.FindFileWild(filename + ".*", searchpos); if (fileno != -1) { |
From: <ka...@us...> - 2008-02-03 21:45:21
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv6690 Modified Files: Main_Panel.cpp pcs2.cpp pcs2.h Log Message: Call main_panel::SignalModelChange("", true) to reset the view without changing the currently loaded model. New clears the model then uses the above Save calls the above at the end to refresh the view Leaving the Preferences dialog does as well Index: Main_Panel.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/Main_Panel.cpp,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** Main_Panel.cpp 14 Jan 2008 11:46:32 -0000 1.19 --- Main_Panel.cpp 3 Feb 2008 21:45:23 -0000 1.20 *************** *** 11,14 **** --- 11,20 ---- * * $Log$ + * Revision 1.20 2008/02/03 21:45:23 kazan + * Call main_panel::SignalModelChange("", true) to reset the view without changing the currently loaded model. + * New clears the model then uses the above + * Save calls the above at the end to refresh the view + * Leaving the Preferences dialog does as well + * * Revision 1.19 2008/01/14 11:46:32 bobboau * you forgot to disable VBO creation *************** *** 824,869 **** int last_cur = 0; int comp = 0; wxString msg = "Starting Load"; wxProgressDialog *prog; ! if (!skipProgdlg) ! prog = new wxProgressDialog("Opening File", msg); ! wxPCS2OpenThread *thread = new wxPCS2OpenThread(this, &model, comp_target, comp_current, IsRunning, error_code, filename, comp_msg); ! thread->Create(); ! thread->Run(); ! wxSleep(1); ! //while (*comp_target == 0 && *IsRunning); ! pstatus->SetStatusText("Loading Model", 2); ! while (*IsRunning) ! { ! if (comp_target != 0) { ! if (last_cur != *comp_current) { ! last_cur = *comp_current; ! msg = comp_msg; ! comp = int((float(*comp_current)/float(*comp_target)*100.0)); ! if (comp > 100) ! comp = 100; ! if (!skipProgdlg) ! prog->Update(comp, msg); ! pstatus->SetStatusText(msg, 0); ! pgauge->SetValue(comp); } } - this->Update(); - wxSafeYield(this->GetParent(),true); - - } ! pstatus->SetStatusText("Loading Textures", 2); ! model.Rcall_Wireframe(false); ! model.Rcall_Textureless(false); ! model.set_active_model((model.GetLODCount()>0&&model.LOD(0)>-1)?model.LOD(0):0);//set to the main LOD if posable glcanvas->FreezeRender = false; --- 830,880 ---- int last_cur = 0; int comp = 0; + *error_code = 0; wxString msg = "Starting Load"; wxProgressDialog *prog; ! if (filename != "") // skip opening a new file, and just reset the view ! { ! if (!skipProgdlg) ! prog = new wxProgressDialog("Opening File", msg); ! wxPCS2OpenThread *thread = new wxPCS2OpenThread(this, &model, comp_target, comp_current, IsRunning, error_code, filename, comp_msg); ! thread->Create(); ! thread->Run(); ! wxSleep(1); ! //while (*comp_target == 0 && *IsRunning); ! pstatus->SetStatusText("Loading Model", 2); ! while (*IsRunning) { ! if (comp_target != 0) { ! if (last_cur != *comp_current) ! { ! last_cur = *comp_current; ! msg = comp_msg; ! comp = int((float(*comp_current)/float(*comp_target)*100.0)); ! if (comp > 100) ! comp = 100; ! if (!skipProgdlg) ! prog->Update(comp, msg); ! pstatus->SetStatusText(msg, 0); ! pgauge->SetValue(comp); ! } } + this->Update(); + wxSafeYield(this->GetParent(),true); + } ! pstatus->SetStatusText("Loading Textures", 2); ! model.Rcall_Wireframe(false); ! model.Rcall_Textureless(false); ! model.set_active_model((model.GetLODCount()>0&&model.LOD(0)>-1)?model.LOD(0):0);//set to the main LOD if posable ! ! } glcanvas->FreezeRender = false; *************** *** 880,885 **** //glcanvas->Render(); } ! ! // model.make_vertex_buffers(); --- 891,895 ---- //glcanvas->Render(); } ! // model.make_vertex_buffers(); Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -d -r1.72 -r1.73 *** pcs2.cpp 31 Jan 2008 17:04:55 -0000 1.72 --- pcs2.cpp 3 Feb 2008 21:45:23 -0000 1.73 *************** *** 12,15 **** --- 12,21 ---- * * $Log$ + * Revision 1.73 2008/02/03 21:45:23 kazan + * Call main_panel::SignalModelChange("", true) to reset the view without changing the currently loaded model. + * New clears the model then uses the above + * Save calls the above at the end to refresh the view + * Leaving the Preferences dialog does as well + * * Revision 1.72 2008/01/31 17:04:55 kazan * bump comp version due to big bugfix *************** *** 576,579 **** --- 582,593 ---- //+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + void PCS2_MainWindow::File_Menu_New(wxCommandEvent &event) + { + mypanel->model.Reset(); + mypanel->SignalModelChange("", true); // with ""/true it just resets the UI + } + + //+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + void PCS2_MainWindow::File_Menu_Open(wxCommandEvent &event) { *************** *** 664,667 **** --- 678,683 ---- delete prog; + // refresh the view + mypanel->SignalModelChange("", true); // with ""/true it just resets the UI } *************** *** 787,791 **** // add controls ! ADD_TOOL(PCS2_MFILE_NEW, tbBitmaps[0], _("New"), _("Start a new package")); toolBar->AddSeparator(); ADD_TOOL(PCS2_MFILE_OPEN, tbBitmaps[1], _("Open"), _("Open project")); --- 803,807 ---- // add controls ! ADD_TOOL(PCS2_MFILE_NEW, tbBitmaps[0], _("New"), _("Start a new model")); toolBar->AddSeparator(); ADD_TOOL(PCS2_MFILE_OPEN, tbBitmaps[1], _("Open"), _("Open project")); *************** *** 968,971 **** --- 984,988 ---- update_color_options(); + mypanel->SignalModelChange("", true); // with ""/true it just resets the UI } *************** *** 1324,1327 **** --- 1341,1345 ---- BEGIN_EVENT_TABLE(PCS2_MainWindow, wxFrame) EVT_CLOSE(PCS2_MainWindow::OnClose) + EVT_MENU(PCS2_MFILE_NEW, PCS2_MainWindow::File_Menu_New) EVT_MENU(PCS2_MFILE_QUIT, PCS2_MainWindow::File_Menu_Quit) EVT_MENU(PCS2_MFILE_OPEN, PCS2_MainWindow::File_Menu_Open) Index: pcs2.h =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.h,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** pcs2.h 18 Oct 2007 15:54:09 -0000 1.46 --- pcs2.h 3 Feb 2008 21:45:23 -0000 1.47 *************** *** 12,15 **** --- 12,21 ---- * * $Log$ + * Revision 1.47 2008/02/03 21:45:23 kazan + * Call main_panel::SignalModelChange("", true) to reset the view without changing the currently loaded model. + * New clears the model then uses the above + * Save calls the above at the end to refresh the view + * Leaving the Preferences dialog does as well + * * Revision 1.46 2007/10/18 15:54:09 kazan * Removed all instances of POFstring in favor of kaz_strings *************** *** 296,299 **** --- 302,306 ---- // events + void File_Menu_New(wxCommandEvent &event); void File_Menu_Quit(wxCommandEvent &event) { Close(true); } void File_Menu_Open(wxCommandEvent &event); |
From: <ka...@us...> - 2008-01-31 17:04:55
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv19653 Modified Files: pcs2.cpp Log Message: bump comp version due to big bugfix Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.71 retrieving revision 1.72 diff -C2 -d -r1.71 -r1.72 *** pcs2.cpp 31 Jan 2008 17:02:24 -0000 1.71 --- pcs2.cpp 31 Jan 2008 17:04:55 -0000 1.72 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.72 2008/01/31 17:04:55 kazan + * bump comp version due to big bugfix + * * Revision 1.71 2008/01/31 17:02:24 kazan * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. *************** *** 293,297 **** wxString BUILD_TYPE = "RC2d"; ! wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC4"; //op_gl_funcs GLFunctions; --- 296,300 ---- wxString BUILD_TYPE = "RC2d"; ! wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC5"; //op_gl_funcs GLFunctions; |
From: <ka...@us...> - 2008-01-31 17:02:52
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv18400 Modified Files: pcs_pmf_pof.cpp Log Message: disable debug code Index: pcs_pmf_pof.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_pof.cpp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** pcs_pmf_pof.cpp 31 Jan 2008 17:02:24 -0000 1.46 --- pcs_pmf_pof.cpp 31 Jan 2008 17:02:49 -0000 1.47 *************** *** 11,14 **** --- 11,17 ---- * * $Log$ + * Revision 1.47 2008/01/31 17:02:49 kazan + * disable debug code + * * Revision 1.46 2008/01/31 17:02:24 kazan * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. *************** *** 1209,1214 **** return false; // calculation error ! std::ofstream bsp_debug("c:\\bsp.txt"); ! DebugPrintTree(root, bsp_debug); // pack the tree --- 1212,1217 ---- return false; // calculation error ! //std::ofstream bsp_debug("c:\\bsp.txt"); ! //DebugPrintTree(root, bsp_debug); // pack the tree |
From: <ka...@us...> - 2008-01-31 17:02:26
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv18325 Modified Files: BSPDataStructs.cpp pcs2.cpp pcs_pmf_pof.cpp pcs_pof_bspfuncs.cpp pcs_pof_bspfuncs.h Log Message: Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. Correct error in calculating tree size. Index: BSPDataStructs.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/BSPDataStructs.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BSPDataStructs.cpp 10 Jan 2008 18:28:09 -0000 1.4 --- BSPDataStructs.cpp 31 Jan 2008 17:02:23 -0000 1.5 *************** *** 12,15 **** --- 12,19 ---- * * $Log$ + * Revision 1.5 2008/01/31 17:02:23 kazan + * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. + * Correct error in calculating tree size. + * * Revision 1.4 2008/01/10 18:28:09 bobboau * *** empty log message *** *************** *** 120,149 **** { int Collector = 0; head.size = MySize(); ! buffer += head.Write(buffer); //size of the header; ! memcpy(buffer, &n_verts, sizeof(int)); ! buffer += sizeof(int); ! memcpy(buffer, &n_norms, sizeof(int)); ! buffer += sizeof(int); ! memcpy(buffer, &offset, sizeof(int)); ! buffer += sizeof(int); ! memcpy(buffer, norm_counts, n_verts); ! buffer += n_verts; // ok this is based off my GUESS .. i hope i guessed correctly for (int i = 0; i < n_verts; i++) { ! memcpy(buffer, &vertex_data[i].vertex, sizeof(vector3d)); ! buffer += sizeof(vector3d); if (i < n_verts) { ! memcpy(buffer, vertex_data[i].norms, sizeof(vector3d) * ((int) (unsigned char)norm_counts[i])); ! buffer += (sizeof(vector3d) * norm_counts[i]); Collector += int(norm_counts[i]); } --- 124,154 ---- { int Collector = 0; + char *tbuff = buffer; head.size = MySize(); ! tbuff += head.Write(tbuff); //size of the header; ! memcpy(tbuff, &n_verts, sizeof(int)); ! tbuff += sizeof(int); ! memcpy(tbuff, &n_norms, sizeof(int)); ! tbuff += sizeof(int); ! memcpy(tbuff, &offset, sizeof(int)); ! tbuff += sizeof(int); ! memcpy(tbuff, norm_counts, n_verts); ! tbuff += n_verts; // ok this is based off my GUESS .. i hope i guessed correctly for (int i = 0; i < n_verts; i++) { ! memcpy(tbuff, &vertex_data[i].vertex, sizeof(vector3d)); ! tbuff += sizeof(vector3d); if (i < n_verts) { ! memcpy(tbuff, vertex_data[i].norms, sizeof(vector3d) * ((int) (unsigned char)norm_counts[i])); ! tbuff += (sizeof(vector3d) * norm_counts[i]); Collector += int(norm_counts[i]); } *************** *** 151,155 **** //vertex_data ! return MySize(); } --- 156,160 ---- //vertex_data ! return unsigned int(tbuff-buffer); } *************** *** 165,169 **** int offset; //4 |20 |from start of chunk to vertex data unsigned char *norm_counts; //n_norms |20+n_norms |n_verts in size; ! vertdata *vertex_data; //Equasion |20+n_norms+Equasion };*/ --- 170,174 ---- int offset; //4 |20 |from start of chunk to vertex data unsigned char *norm_counts; //n_norms |20+n_norms |n_verts in size; ! vertdata *vertex_data; //Equation |20+n_norms+Equation };*/ Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -d -r1.70 -r1.71 *** pcs2.cpp 30 Jan 2008 20:59:14 -0000 1.70 --- pcs2.cpp 31 Jan 2008 17:02:24 -0000 1.71 *************** *** 12,15 **** --- 12,19 ---- * * $Log$ + * Revision 1.71 2008/01/31 17:02:24 kazan + * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. + * Correct error in calculating tree size. + * * Revision 1.70 2008/01/30 20:59:14 kazan * mark as rc2d - so next public build is properly tagged *************** *** 637,641 **** if (*error_code != 0) { ! wxMessageDialog errormsg((wxWindow*)this, *comp_msg, "Error Saving File", wxOK | wxICON_HAND); errormsg.ShowModal(); } --- 641,645 ---- if (*error_code != 0) { ! wxMessageDialog errormsg((wxWindow*)this, comp_msg, "Error Saving File", wxOK | wxICON_HAND); errormsg.ShowModal(); } Index: pcs_pmf_pof.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_pof.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** pcs_pmf_pof.cpp 30 Jan 2008 21:05:25 -0000 1.45 --- pcs_pmf_pof.cpp 31 Jan 2008 17:02:24 -0000 1.46 *************** *** 11,14 **** --- 11,18 ---- * * $Log$ + * Revision 1.46 2008/01/31 17:02:24 kazan + * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. + * Correct error in calculating tree size. + * * Revision 1.45 2008/01/30 21:05:25 kazan * Fix cosmetic bug displaying bbox'es *************** *** 249,253 **** { // Update Progress ! sprintf(comp_msg_str, "Submodel %d: %s", i, subobjects[i].name.c_str()); comp_current++; --- 253,260 ---- { // Update Progress ! //if (subobjects[i].name == "debris08") ! // sprintf(comp_msg_str, "Submodel %d: %s SENTINAL!", i, subobjects[i].name.c_str()); ! //else ! sprintf(comp_msg_str, "Submodel %d: %s", i, subobjects[i].name.c_str()); comp_current++; *************** *** 1199,1209 **** memset(dst.bsp_data, 0, dst.bsp_data_size); ! points.Write(dst.bsp_data); ! // pack the tree ! PackTreeInBSP(root, points.head.size, dst.bsp_data, clean_list, points_list, pnts, points, dst.geometric_center); ! //std::ofstream bsp_debug("bsp.txt"); ! //DebugPrintTree(root, bsp_debug); // erase our tree and other variables --- 1206,1222 ---- memset(dst.bsp_data, 0, dst.bsp_data_size); ! if (points.Write(dst.bsp_data) != points.head.size) ! return false; // calculation error ! std::ofstream bsp_debug("c:\\bsp.txt"); ! DebugPrintTree(root, bsp_debug); ! // pack the tree ! int error_flags = 0; ! PackTreeInBSP(root, points.head.size, dst.bsp_data, clean_list, points_list, pnts, points, dst.geometric_center, dst.bsp_data_size, error_flags); ! ! // we got errors! ! if (error_flags != BSP_NOERRORS) ! return false; // erase our tree and other variables Index: pcs_pof_bspfuncs.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pof_bspfuncs.cpp,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** pcs_pof_bspfuncs.cpp 10 Jan 2008 18:28:10 -0000 1.30 --- pcs_pof_bspfuncs.cpp 31 Jan 2008 17:02:24 -0000 1.31 *************** *** 10,13 **** --- 10,17 ---- * * $Log$ + * Revision 1.31 2008/01/31 17:02:24 kazan + * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. + * Correct error in calculating tree size. + * * Revision 1.30 2008/01/10 18:28:10 bobboau * *** empty log message *** *************** *** 173,180 **** int PackTreeInBSP(bsp_tree_node *root, int offset, char *buffer, kaz_vector<pcs_polygon> &polygons, ! kaz_vector<bsp_vert> &vlist, kaz_vector<vector3d> &verts, BSP_DefPoints &dpnts, vector3d geo_center) { int size = 0; BSP_BlockHeader EndOfFile; --- 177,207 ---- int PackTreeInBSP(bsp_tree_node *root, int offset, char *buffer, kaz_vector<pcs_polygon> &polygons, ! kaz_vector<bsp_vert> &vlist, kaz_vector<vector3d> &verts, BSP_DefPoints &dpnts, vector3d geo_center, int buffsize, int &error_flags) { + // ----------- error detection --------------- + // abort if error detected + if (error_flags != BSP_NOERRORS) + return 0; + + // we're going to write off the end of the buffer gauranteed (smallest element is EOF - 8 bytes + if (offset >= buffsize-7) + { + error_flags |= BSP_PACK_PREOVERFLOW; + return 0; + } + // either we're written this node already, or it didn't get counted in size calculation.. this is bad, skip + if (root != NULL && root->used == true) + { + error_flags |= BSP_PACK_DOUBLEUSE; + return 0; + } + if (root != NULL && root->counted == false) + { + error_flags |= BSP_PACK_UNCOUNTED; + return 0; + } + // ----------- finish error detection --------------- int size = 0; BSP_BlockHeader EndOfFile; *************** *** 205,208 **** --- 232,240 ---- size += Bounding.MySize(); + if (offset+CalculateTreeSize(root, polygons) > buffsize) + { + error_flags |= BSP_PACK_PREPOLYOVERFLOW; + return 0; + } // Size is BBOX (32 bytes) + Poly (variable on type and count) + EOF ( 8 bytes) *************** *** 229,233 **** --- 261,270 ---- EndOfFile.Write(buffer+offset+size); size += EndOfFile.MySize(); + root->used = true; + if (offset+size > buffsize) + { + error_flags |= BSP_PACK_POLYOVERFLOW; + } return size; *************** *** 242,259 **** snorm.min_bounding_box_point = root->bound_min; snorm.prelist_offset = size; ! size += PackTreeInBSP(NULL, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center); snorm.postlist_offset = size; ! size += PackTreeInBSP(NULL, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center); snorm.online_offset = size; ! size += PackTreeInBSP(NULL, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center); snorm.front_offset = size; ! size += PackTreeInBSP(root->front, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center); snorm.back_offset = size; ! size += PackTreeInBSP(root->back, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center); snorm.Write(buffer+offset); --- 279,302 ---- snorm.min_bounding_box_point = root->bound_min; + if (offset+CalculateTreeSize(root, polygons) > buffsize) + { + error_flags |= BSP_PACK_PRESPLITOVERFLOW; + return 0; + } + snorm.prelist_offset = size; ! size += PackTreeInBSP(NULL, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center, buffsize, error_flags); snorm.postlist_offset = size; ! size += PackTreeInBSP(NULL, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center, buffsize, error_flags); snorm.online_offset = size; ! size += PackTreeInBSP(NULL, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center, buffsize, error_flags); snorm.front_offset = size; ! size += PackTreeInBSP(root->front, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center, buffsize, error_flags); snorm.back_offset = size; ! size += PackTreeInBSP(root->back, offset+size, buffer, polygons, vlist, verts, dpnts, geo_center, buffsize, error_flags); snorm.Write(buffer+offset); *************** *** 263,268 **** //EndOfFile.Write(buffer+offset+size); //size += EndOfFile.MySize(); return size; - break; } return 0; --- 306,316 ---- //EndOfFile.Write(buffer+offset+size); //size += EndOfFile.MySize(); + + root->used = true; + if (offset+size > buffsize) + { + error_flags |= BSP_PACK_SPLITOVERFLOW; + } return size; } return 0; *************** *** 281,296 **** case POLY: // Size is BBOX (32 bytes) + Poly (variable on type and count) + EOF ( 8 bytes) for(unsigned int i = 0; i<root->poly_num.size(); i++){ if (polygons[root->poly_num[i]].texture_id == -1) ! ret_size += 84 + 4 * polygons[root->poly_num[i]].verts.size();// Fplatpoly else ! ret_size += 84 + 12 * polygons[root->poly_num[i]].verts.size();//Tmappoly } return ret_size; - break; default: //SPLIT return 104 + CalculateTreeSize(root->front, polygons) + CalculateTreeSize(root->back, polygons); // 80 + 3*8 bytes for pre/post/onlist EOFs - break; } return 0; --- 329,346 ---- case POLY: // Size is BBOX (32 bytes) + Poly (variable on type and count) + EOF ( 8 bytes) + ret_size += 32; for(unsigned int i = 0; i<root->poly_num.size(); i++){ if (polygons[root->poly_num[i]].texture_id == -1) ! ret_size += 44 + 4 * polygons[root->poly_num[i]].verts.size();// Fplatpoly else ! ret_size += 44 + 12 * polygons[root->poly_num[i]].verts.size();//Tmappoly } + ret_size += 8; + root->counted = true; return ret_size; default: //SPLIT + root->counted = true; return 104 + CalculateTreeSize(root->front, polygons) + CalculateTreeSize(root->back, polygons); // 80 + 3*8 bytes for pre/post/onlist EOFs } return 0; Index: pcs_pof_bspfuncs.h =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pof_bspfuncs.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** pcs_pof_bspfuncs.h 13 Jul 2007 18:22:22 -0000 1.15 --- pcs_pof_bspfuncs.h 31 Jan 2008 17:02:24 -0000 1.16 *************** *** 10,13 **** --- 10,17 ---- * * $Log$ + * Revision 1.16 2008/01/31 17:02:24 kazan + * Add error checking to BSP tree packing, this will slow packing somewhat, but will prevent crashes. + * Correct error in calculating tree size. + * * Revision 1.15 2007/07/13 18:22:22 kazan * implement SLDC (Shield Collision Tree) chunk *************** *** 106,110 **** { bsp_tree_node() ! :Type(INVALID), front(NULL), back(NULL) {}; node_type Type; --- 110,114 ---- { bsp_tree_node() ! :Type(INVALID), front(NULL), back(NULL), used(false), counted(false) {}; node_type Type; *************** *** 124,127 **** --- 128,135 ---- bsp_tree_node *front; // front recruse bsp_tree_node *back; // back recruse + + // safety variables - counted is true when calculate size has hit a node, used is true when writing has hit a node + bool used; + bool counted; }; *************** *** 137,143 **** // BSP tree functions int CalculateTreeSize(bsp_tree_node *root, kaz_vector<pcs_polygon> &polygons); int PackTreeInBSP(bsp_tree_node *root, int offset, char *buffer, kaz_vector<pcs_polygon> &polygons, ! kaz_vector<bsp_vert> &vlist, kaz_vector<vector3d> &verts, BSP_DefPoints &dpnts, vector3d geo_center); // closely related functions for SLDC meshes --- 145,169 ---- // BSP tree functions + #define BSP_NOERRORS 0 + + // --------- errors raised while packing --------- + // raised if it detects less than 7 bytes free in buffer at start of a call + #define BSP_PACK_PREOVERFLOW 0x00000001 + // raised if it detects a double usage of a node + #define BSP_PACK_DOUBLEUSE 0x00000002 + // raised if it detects an attempt to use an uncounted node + #define BSP_PACK_UNCOUNTED 0x00000004 + // raised if it detects an overflow in a polygon after-writing + #define BSP_PACK_POLYOVERFLOW 0x00000008 + // raised if it detects an overflow in a split after-writing + #define BSP_PACK_SPLITOVERFLOW 0x00000010 + // raised if it detects an overflow in a polygon before writing + #define BSP_PACK_PREPOLYOVERFLOW 0x00000020 + // raised if it detects an overflow in a split before writing + #define BSP_PACK_PRESPLITOVERFLOW 0x00000040 + int CalculateTreeSize(bsp_tree_node *root, kaz_vector<pcs_polygon> &polygons); int PackTreeInBSP(bsp_tree_node *root, int offset, char *buffer, kaz_vector<pcs_polygon> &polygons, ! kaz_vector<bsp_vert> &vlist, kaz_vector<vector3d> &verts, BSP_DefPoints &dpnts, vector3d geo_center, int buffsize, int &error_flags); // closely related functions for SLDC meshes |
From: <ka...@us...> - 2008-01-30 21:05:23
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv13121 Modified Files: pcs_pmf_pof.cpp Log Message: Fix cosmetic bug displaying bbox'es Index: pcs_pmf_pof.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_pof.cpp,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** pcs_pmf_pof.cpp 30 Jan 2008 20:50:06 -0000 1.44 --- pcs_pmf_pof.cpp 30 Jan 2008 21:05:25 -0000 1.45 *************** *** 11,14 **** --- 11,17 ---- * * $Log$ + * Revision 1.45 2008/01/30 21:05:25 kazan + * Fix cosmetic bug displaying bbox'es + * * Revision 1.44 2008/01/30 20:50:06 kazan * Fix the damn BBox bug, finally! *************** *** 1008,1015 **** poffile.OBJ2_Get_BoundingMin(i, obj->bounding_box_min_point); ! obj->bounding_box_min_point = POFTranslate(obj->bounding_box_min_point); poffile.OBJ2_Get_BoundingMax(i, obj->bounding_box_max_point); ! obj->bounding_box_max_point = POFTranslate(obj->bounding_box_max_point); poffile.OBJ2_Get_Name(i, obj->name); --- 1011,1018 ---- poffile.OBJ2_Get_BoundingMin(i, obj->bounding_box_min_point); ! //obj->bounding_box_min_point = POFTranslate(obj->bounding_box_min_point); Not Required poffile.OBJ2_Get_BoundingMax(i, obj->bounding_box_max_point); ! //obj->bounding_box_max_point = POFTranslate(obj->bounding_box_max_point); Not Required poffile.OBJ2_Get_Name(i, obj->name); |
From: <ka...@us...> - 2008-01-30 20:59:18
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv10249 Modified Files: pcs2.cpp Log Message: mark as rc2d - so next public build is properly tagged Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -d -r1.69 -r1.70 *** pcs2.cpp 30 Jan 2008 20:50:05 -0000 1.69 --- pcs2.cpp 30 Jan 2008 20:59:14 -0000 1.70 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.70 2008/01/30 20:59:14 kazan + * mark as rc2d - so next public build is properly tagged + * * Revision 1.69 2008/01/30 20:50:05 kazan * Fix the damn BBox bug, finally! *************** *** 285,289 **** int current_model_file; ! wxString BUILD_TYPE = "RC2c"; wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC4"; //op_gl_funcs GLFunctions; --- 288,292 ---- int current_model_file; ! wxString BUILD_TYPE = "RC2d"; wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC4"; //op_gl_funcs GLFunctions; |
From: <ka...@us...> - 2008-01-30 20:50:12
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv5661 Modified Files: pcs2.cpp pcs_pmf_pof.cpp Log Message: Fix the damn BBox bug, finally! Fixed a small bug where it would cache when it shouldn't Increment compiler version Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -d -r1.68 -r1.69 *** pcs2.cpp 18 Jan 2008 18:39:26 -0000 1.68 --- pcs2.cpp 30 Jan 2008 20:50:05 -0000 1.69 *************** *** 12,15 **** --- 12,20 ---- * * $Log$ + * Revision 1.69 2008/01/30 20:50:05 kazan + * Fix the damn BBox bug, finally! + * Fixed a small bug where it would cache when it shouldn't + * Increment compiler version + * * Revision 1.68 2008/01/18 18:39:26 kazan * Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space *************** *** 280,285 **** int current_model_file; ! wxString BUILD_TYPE = "RC2"; ! wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC3"; //op_gl_funcs GLFunctions; --- 285,290 ---- int current_model_file; ! wxString BUILD_TYPE = "RC2c"; ! wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC4"; //op_gl_funcs GLFunctions; Index: pcs_pmf_pof.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_pof.cpp,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** pcs_pmf_pof.cpp 18 Jan 2008 18:39:27 -0000 1.43 --- pcs_pmf_pof.cpp 30 Jan 2008 20:50:06 -0000 1.44 *************** *** 11,14 **** --- 11,19 ---- * * $Log$ + * Revision 1.44 2008/01/30 20:50:06 kazan + * Fix the damn BBox bug, finally! + * Fixed a small bug where it would cache when it shouldn't + * Increment compiler version + * * Revision 1.43 2008/01/18 18:39:27 kazan * Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space *************** *** 617,624 **** } - poffile.HDR2_Set_MinBound(POFTranslate(minbox)); - poffile.HDR2_Set_MaxBound(POFTranslate(maxbox)); - // update our bounding boxes this->header.max_bounding = minbox; this->header.min_bounding = maxbox; --- 622,629 ---- } // update our bounding boxes + //axis doesn't matter on the bounding boxes - it's all negative/positive values! i'm a faqing moron + poffile.HDR2_Set_MinBound(minbox); + poffile.HDR2_Set_MaxBound(maxbox); this->header.max_bounding = minbox; this->header.min_bounding = maxbox; *************** *** 709,712 **** --- 714,718 ---- model_info = poffile.PINF_Get(); + can_bsp_cache = false; for (i = 0; i < model_info.size(); i++) { |
From: <bo...@us...> - 2008-01-21 16:18:35
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv7012 Modified Files: header_editor.h primitive_ctrl.h Log Message: did some restructureing of the primitive editors to make static display controls a bit more generic, then made radius and bboxes in the header editor read only, we need to make damn sure when the POF is saved these get calculated corectly. Index: header_editor.h =================================================================== RCS file: /cvsroot/alliance/pcs2/header_editor.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** header_editor.h 12 Jan 2008 18:02:24 -0000 1.10 --- header_editor.h 21 Jan 2008 16:18:36 -0000 1.11 *************** *** 58,66 **** :public editor_ctrl<header_data> { ! vector_ctrl*bbox_min; ! vector_ctrl*bbox_max; vector_ctrl*cent_mass; ! float_ctrl*max_rad; float_ctrl*mass; --- 58,66 ---- :public editor_ctrl<header_data> { ! vector_disp*bbox_min; ! vector_disp*bbox_max; vector_ctrl*cent_mass; ! float_disp*max_rad; float_ctrl*mass; *************** *** 79,88 **** :editor_ctrl<header_data>(parent, "Header") { ! add_control(bbox_min=new vector_ctrl(this,0,0,60,40,"Bounding Box Min"),0,wxEXPAND ); ! add_control(bbox_max=new vector_ctrl(this,0,30,60,40,"Bounding Box Max"),0,wxEXPAND ); add_control(cent_mass=new vector_ctrl(this,0,60,60,40,"Center of Mass"),0,wxEXPAND ); wxBoxSizer*f_sizer = new wxBoxSizer(wxHORIZONTAL); ! max_rad = new float_ctrl(this,0,90,30,40,"Max Radius"); mass = new float_ctrl(this,30,90,30,40,"Mass"); f_sizer->Add(max_rad,2); --- 79,88 ---- :editor_ctrl<header_data>(parent, "Header") { ! add_control(bbox_min=new vector_disp(this,0,0,60,40,"Bounding Box Min"),0,wxEXPAND ); ! add_control(bbox_max=new vector_disp(this,0,30,60,40,"Bounding Box Max"),0,wxEXPAND ); add_control(cent_mass=new vector_ctrl(this,0,60,60,40,"Center of Mass"),0,wxEXPAND ); wxBoxSizer*f_sizer = new wxBoxSizer(wxHORIZONTAL); ! max_rad = new float_disp(this,0,90,30,40,"Max Radius"); mass = new float_ctrl(this,30,90,30,40,"Mass"); f_sizer->Add(max_rad,2); Index: primitive_ctrl.h =================================================================== RCS file: /cvsroot/alliance/pcs2/primitive_ctrl.h,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** primitive_ctrl.h 10 Jan 2008 18:28:11 -0000 1.10 --- primitive_ctrl.h 21 Jan 2008 16:18:36 -0000 1.11 *************** *** 8,53 **** ! //display's info in static, uneditable form ! //this class is mostly for convenience and consistancy, ! //as adding a static text control to an editor is trivial ! //but the resizeing and the static box, would be a bit complicated ! template<typename type> ! class primitive_disp : ! public editor<type> ! { ! protected: ! wxStaticText*text_box; ! public: ! ! //constructor builds the text box and adds it to editor's static box sizer ! primitive_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title, int orient = wxHORIZONTAL, int Flags=0) ! :editor(parent,x,y,w,h, orient, Title) ! { ! //make the text editor ! text_box = new wxStaticText(this,-1,"",wxPoint(6+x,15+y),wxSize(w-12,20),Flags); ! //add it to our controls ! add_control(text_box, 1,wxEXPAND ,1); ! }; ! public: ! virtual ~primitive_disp(void){}; ! }; ! ! //class for string interface ! class string_disp ! :public primitive_disp<kaz_string> ! { ! ! public: ! //the main accessors, gets/sets the value in the text box ! virtual kaz_string get_value(){return kaz_string(text_box->GetLabel().c_str());} ! virtual void set_value(const kaz_string&s){text_box->SetLabel(s.c_str());} ! //just passes parameters to primitive, and makes sure the box is clear, only doing that for completeness sake ! string_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title) ! :primitive_disp(parent,x,y,w,h,Title) ! { ! set_value(""); ! } ! }; /* --- 8,30 ---- ! inline kaz_string get_string(text_ctrl*tc){ ! return kaz_string(tc->GetValue().c_str()); ! } ! inline void set_string(text_ctrl*tc, const wxString&s){ ! tc->ChangeValue(s); ! } ! inline void set_string(text_ctrl*tc, const kaz_string&s){ ! tc->ChangeValue(s.c_str()); ! } ! inline kaz_string get_string(wxStaticText*st){ ! return kaz_string(st->GetLabel().c_str()); ! } ! inline void set_string(wxStaticText*st, const wxString&s){ ! st->SetLabel(s); ! } ! inline void set_string(wxStaticText*st, const kaz_string&s){ ! st->SetLabel(s.c_str()); ! } /* *************** *** 62,71 **** //comes from this, derived controls are only required to implement //a function that takes a string and extracts a value ! template<typename type> class primitive_ctrl : public editor<type> { protected: ! text_ctrl*text_box; public: --- 39,48 ---- //comes from this, derived controls are only required to implement //a function that takes a string and extracts a value ! template<typename type, class data_ctrl = text_ctrl> class primitive_ctrl : public editor<type> { protected: ! data_ctrl*text_box; public: *************** *** 75,79 **** { //make the text editor ! text_box = new text_ctrl(this,-1,"",wxPoint(6+x,15+y),wxSize(w-12,20),Flags); //add it to our controls add_control(text_box, 1,wxEXPAND ,1); --- 52,56 ---- { //make the text editor ! text_box = new data_ctrl(this,-1,"",wxPoint(6+x,15+y),wxSize(w-12,20),Flags); //add it to our controls add_control(text_box, 1,wxEXPAND ,1); *************** *** 93,97 **** }; ! BEGIN_EVENT_TABLE_TEMPLATE1 (primitive_ctrl,editor<type>,type) // EVT_TEXT(wxID_ANY, primitive_ctrl::do_data_change) EVT_KILL_FOCUS(primitive_ctrl::do_lose_focus) --- 70,74 ---- }; ! BEGIN_EVENT_TABLE_TEMPLATE2 (primitive_ctrl,editor<type>,type,data_ctrl) // EVT_TEXT(wxID_ANY, primitive_ctrl::do_data_change) EVT_KILL_FOCUS(primitive_ctrl::do_lose_focus) *************** *** 101,115 **** //class for string interface ! class string_ctrl ! :public primitive_ctrl<kaz_string> { public: //the main accessors, gets/sets the value in the text box ! virtual kaz_string get_value(){return kaz_string(text_box->GetValue().c_str());} ! virtual void set_value(const kaz_string&s){text_box->ChangeValue(s.c_str());} //just passes parameters to primitive, and makes sure the box is clear, only doing that for completeness sake ! string_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { --- 78,93 ---- //class for string interface ! template<class data_ctrl> ! class _string_ctrl ! :public primitive_ctrl<kaz_string, data_ctrl> { public: //the main accessors, gets/sets the value in the text box ! virtual kaz_string get_value(){return get_string(text_box);} ! virtual void set_value(const kaz_string&s){set_string(text_box, s);} //just passes parameters to primitive, and makes sure the box is clear, only doing that for completeness sake ! _string_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { *************** *** 117,134 **** } }; //class for multi-line string interface ! class multi_string_ctrl ! :public primitive_ctrl<kaz_string> { public: //the main accessors, gets/sets the value in the text box ! virtual kaz_string get_value(){return kaz_string(text_box->GetValue().c_str());} ! virtual void set_value(const kaz_string&s){text_box->ChangeValue(s.c_str());} //just passes parameters to primitive, and makes sure the box is clear, only doing that for completeness sake ! multi_string_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title, wxHORIZONTAL,wxTE_MULTILINE) { --- 95,115 ---- } }; + class string_ctrl : public _string_ctrl<text_ctrl>{public:string_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title):_string_ctrl(parent,x,y,w,h,Title){}}; + class string_disp : public _string_ctrl<wxStaticText>{public:string_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title):_string_ctrl(parent,x,y,w,h,Title){}}; //class for multi-line string interface ! template<class data_ctrl = text_ctrl> ! class _multi_string_ctrl ! :public primitive_ctrl<kaz_string, data_ctrl> { public: //the main accessors, gets/sets the value in the text box ! virtual kaz_string get_value(){return get_string(text_box);} ! virtual void set_value(const kaz_string&s){set_string(text_box, s);} //just passes parameters to primitive, and makes sure the box is clear, only doing that for completeness sake ! _multi_string_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title, wxHORIZONTAL,wxTE_MULTILINE) { *************** *** 136,152 **** } }; //class for float interface ! class float_ctrl ! :public primitive_ctrl<float> { public: //the main accessors, gets/sets the value in the text box ! virtual float get_value(){return (float)atof(text_box->GetValue().c_str());} ! virtual void set_value(const float&f){text_box->ChangeValue(wxString().Format("%f",f));} //just passes parameters to primitive, and makes sure the box is set to a proper default ! float_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { --- 117,136 ---- } }; + class multi_string_ctrl : public _multi_string_ctrl<text_ctrl>{public:multi_string_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title):_multi_string_ctrl(parent,x,y,w,h,Title){}}; + class multi_string_disp : public _multi_string_ctrl<wxStaticText>{public:multi_string_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title):_multi_string_ctrl(parent,x,y,w,h,Title){}}; //class for float interface ! template<class data_ctrl = text_ctrl> ! class _float_ctrl ! :public primitive_ctrl<float, data_ctrl> { public: //the main accessors, gets/sets the value in the text box ! virtual float get_value(){return (float)atof(get_string(text_box).c_str());} ! virtual void set_value(const float&f){set_string(text_box, wxString().Format("%f",f));} //just passes parameters to primitive, and makes sure the box is set to a proper default ! _float_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { *************** *** 154,170 **** } }; //class for int interface ! class int_ctrl ! :public primitive_ctrl<int> { public: //the main accessors, gets/sets the value in the text box ! virtual int get_value(){return (int)atoi(text_box->GetValue().c_str());} ! virtual void set_value(const int&i){text_box->ChangeValue(wxString().Format("%d",i));} //just passes parameters to primitive, and makes sure the box is set to a proper default ! int_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { --- 138,157 ---- } }; + class float_ctrl : public _float_ctrl<text_ctrl>{public:float_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title):_float_ctrl(parent,x,y,w,h,Title){}}; + class float_disp : public _float_ctrl<wxStaticText>{public:float_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title):_float_ctrl(parent,x,y,w,h,Title){}}; //class for int interface ! template<class data_ctrl = text_ctrl> ! class _int_ctrl ! :public primitive_ctrl<int, data_ctrl> { public: //the main accessors, gets/sets the value in the text box ! virtual int get_value(){return (int)atoi(get_string(text_box).c_str());} ! virtual void set_value(const int&i){set_string(text_box, wxString().Format("%d",i));} //just passes parameters to primitive, and makes sure the box is set to a proper default ! _int_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { *************** *** 172,180 **** } }; //class for vector interface ! class vector_ctrl ! :public primitive_ctrl<vector3d> { --- 159,170 ---- } }; + class int_ctrl : public _int_ctrl<text_ctrl>{public:int_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title):_int_ctrl(parent,x,y,w,h,Title){}}; + class int_disp : public _int_ctrl<wxStaticText>{public:int_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title):_int_ctrl(parent,x,y,w,h,Title){}}; //class for vector interface ! template<class data_ctrl = text_ctrl> ! class _vector_ctrl ! :public primitive_ctrl<vector3d, data_ctrl> { *************** *** 182,186 **** //the main accessors, gets/sets the value in the text box virtual vector3d get_value(){ ! wxString s = text_box->GetValue(); if(s.Length()<1)return vector3d(0,0,0); --- 172,176 ---- //the main accessors, gets/sets the value in the text box virtual vector3d get_value(){ ! wxString s = get_string(text_box).c_str(); if(s.Length()<1)return vector3d(0,0,0); *************** *** 198,205 **** return vector3d(x,y,z); } ! virtual void set_value(const vector3d&v){text_box->ChangeValue(wxString().Format("%f:%f:%f",v.x,v.y,v.z));} //just passes parameters to primitive, and makes sure the box is set to a proper default ! vector_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { --- 188,195 ---- return vector3d(x,y,z); } ! virtual void set_value(const vector3d&v){set_string(text_box, wxString().Format("%f:%f:%f",v.x,v.y,v.z));} //just passes parameters to primitive, and makes sure the box is set to a proper default ! _vector_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) :primitive_ctrl(parent,x,y,w,h,Title) { *************** *** 207,219 **** } }; ! class normal_ctrl ! :public vector_ctrl { wxButton*norm_btn; public: ! normal_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) ! :vector_ctrl(parent,x,y,w,h,Title) { add_control(norm_btn = new wxButton(this, NORM_NORMALIZE, "Norm", wxDefaultPosition, wxSize(40,20))); --- 197,212 ---- } }; + class vector_ctrl : public _vector_ctrl<text_ctrl>{public:vector_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title):_vector_ctrl(parent,x,y,w,h,Title){}}; + class vector_disp : public _vector_ctrl<wxStaticText>{public:vector_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title):_vector_ctrl(parent,x,y,w,h,Title){}}; ! template<class data_ctrl = text_ctrl> ! class _normal_ctrl ! :public _vector_ctrl<data_ctrl> { wxButton*norm_btn; public: ! _normal_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title) ! :_vector_ctrl<data_ctrl>(parent,x,y,w,h,Title) { add_control(norm_btn = new wxButton(this, NORM_NORMALIZE, "Norm", wxDefaultPosition, wxSize(40,20))); *************** *** 221,225 **** } - DECLARE_EVENT_TABLE(); void on_normalize(wxCommandEvent& event){ set_value(MakeUnitVector(get_value())); --- 214,217 ---- *************** *** 227,230 **** --- 219,224 ---- }; + class normal_ctrl : public _normal_ctrl<text_ctrl>{public:normal_ctrl(wxWindow*parent, int x, int y, int w, int h, wxString Title):_normal_ctrl(parent,x,y,w,h,Title){};DECLARE_EVENT_TABLE();}; + class normal_disp : public _normal_ctrl<wxStaticText>{public:normal_disp(wxWindow*parent, int x, int y, int w, int h, wxString Title):_normal_ctrl(parent,x,y,w,h,Title){}}; |
From: <bo...@us...> - 2008-01-19 01:55:47
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9006 Modified Files: geo_sphere.cpp geo_sphere.h wxGL_PMFCanvas.cpp wxGL_PMFCanvas.h Log Message: modified the omnipoint geospheres to use VBOs, the geometry of these things is totaly static, so it makes sence to use them Index: geo_sphere.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/geo_sphere.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** geo_sphere.cpp 17 Jun 2007 10:29:17 -0000 1.1 --- geo_sphere.cpp 19 Jan 2008 01:55:50 -0000 1.2 *************** *** 121,125 **** --- 121,128 ---- // ntri = 319; + glPushMatrix(); + glTranslatef(pnt.x, pnt.y, pnt.z); + glScalef(rad, rad, rad); glBegin(GL_TRIANGLES); *************** *** 129,133 **** for(int j = 2; j>-1; j--){ glNormal3fv((GLfloat *)&gspoints[gstris[start + i].point[j]]); ! glVertex3fv((GLfloat *)&(gspoints[gstris[start + i].point[j]]*rad)); //sence this is a sphere of unit radius, //the verts also serve as there own normals! --- 132,136 ---- for(int j = 2; j>-1; j--){ glNormal3fv((GLfloat *)&gspoints[gstris[start + i].point[j]]); ! glVertex3fv((GLfloat *)&(gspoints[gstris[start + i].point[j]])); //sence this is a sphere of unit radius, //the verts also serve as there own normals! *************** *** 138,141 **** glEnd(); ! glTranslatef(-pnt.x, -pnt.y, -pnt.z); } --- 141,192 ---- glEnd(); ! glPopMatrix(); ! } + + ogl_vertex_buffer geo_sphere::make_vertex_buffer(int res){ + ogl_vertex_buffer ret; + + // struct OGL_vert{ + vector3d pos; + // vector3d norm; + // }; + + int start = gs_sphere_start[res]; + int ntri = n_tri(res); + + + // kaz_vector<OGL_vert> tri(ntri*3); + kaz_vector<vector3d> tri(ntri*3); + + for(unsigned int i = 0; i<ntri; i++){ + for(unsigned int v = 0; v<3; v++){ + tri[i*3+v] = gspoints[gstris[start+i].point[v]]; + // tri[i*3+v].pos = gspoints[gstris[start+i].point[v]]; + // tri[i*3+v].norm = gspoints[gstris[start+i].point[v]]; + } + } + + ret.n_verts = tri.size(); + // ret.vertex_size = sizeof(OGL_vert); + ret.vertex_size = sizeof(vector3d); + ret.buffer = 0; + // ret.format = GL_N3F_V3F; + ret.format = GL_V3F; + + if(tri.size() <1)return ret; + + // glSetStrideSize(vertex_buffer[tid].vertex_size); + glGenBuffersARB(1, &ret.buffer); + ERROR_CHECK; + glBindBufferARB(GL_ARRAY_BUFFER_ARB, ret.buffer); + glBufferDataARB(GL_ARRAY_BUFFER_ARB, tri.size()*sizeof(vector3d),NULL, GL_STATIC_DRAW_ARB); + float*map = (float *)glMapBufferARB(GL_ARRAY_BUFFER_ARB, GL_WRITE_ONLY_ARB); + ERROR_CHECK; + memcpy(map, &tri[0], tri.size()*sizeof(vector3d)); + glUnmapBufferARB(GL_ARRAY_BUFFER_ARB); + + glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + + return ret; + } \ No newline at end of file Index: geo_sphere.h =================================================================== RCS file: /cvsroot/alliance/pcs2/geo_sphere.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** geo_sphere.h 17 Jun 2007 10:29:18 -0000 1.1 --- geo_sphere.h 19 Jan 2008 01:55:50 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- #include "kaz_templates.h" #include "color.h" + #include "ogl_vertex_buffers.h" *************** *** 68,70 **** --- 69,72 ---- void draw(const vector3d&pnt, float rad, unsigned int res, color col); + ogl_vertex_buffer make_vertex_buffer(int res); }; \ No newline at end of file Index: wxGL_PMFCanvas.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/wxGL_PMFCanvas.cpp,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** wxGL_PMFCanvas.cpp 25 Jul 2007 05:43:19 -0000 1.39 --- wxGL_PMFCanvas.cpp 19 Jan 2008 01:55:50 -0000 1.40 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.40 2008/01/19 01:55:50 bobboau + * modified the omnipoint geospheres to use VBOs, the geometry of these things is totaly static, so it makes sence to use them + * * Revision 1.39 2007/07/25 05:43:19 bobboau * fixed a crash bug. *************** *** 306,309 **** --- 309,316 ---- reload_textures(); } + + static geo_sphere sphere(3); + omni_point_buffer = sphere.make_vertex_buffer(3); + FreezeRender = false; } *************** *** 479,482 **** --- 486,498 ---- unsigned int i; unsigned int j; + + glBindBuffer(GL_ARRAY_BUFFER, omni_point_buffer.buffer); + pglLockArraysEXT( 0, omni_point_buffer.n_verts); + ERROR_CHECK; + glEnableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); + glVertexPointer(3,GL_FLOAT, omni_point_buffer.vertex_size, (void*)NULL); + glNormalPointer(GL_FLOAT, omni_point_buffer.vertex_size, (void*)(NULL + sizeof(vector3d))); + for(i = 0; i<omni.point.size(); i++){ for(j = 0; j<omni.point[i].size(); j++){ *************** *** 490,502 **** //invalid radius so it's ok if we set it to anyhting //and the rest of the code assumes a sane rad if(!(omni.flags & OMNIPOINT_RAD)) omni.point[i][j].rad = model.get_avg_dimintion()/61.80f; - sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), omni.point[i][j].rad, 2, col); ! if(omni.flags & OMNIPOINT_PATH) ! sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), model.get_avg_dimintion()/30.0f, 2, col*10); } } GLfloat AmbientLight[4]={1.0f,1.0f,1.0f,1.0f}; --- 506,551 ---- //invalid radius so it's ok if we set it to anyhting //and the rest of the code assumes a sane rad + if(!(omni.flags & OMNIPOINT_RAD)) omni.point[i][j].rad = model.get_avg_dimintion()/61.80f; ! glPushMatrix(); ! ! vector3d pnt = omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model); ! glTranslatef(pnt.x, pnt.y, pnt.z); ! ! if(omni.flags & OMNIPOINT_PATH){ ! //sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), model.get_avg_dimintion()/30.0f, 2, col*10); ! float r = model.get_avg_dimintion()/30.0f; ! glScalef(r,r,r); ! color col2 = col*10; ! glColor4ubv( (GLubyte*)col2.col); ! glDrawArrays(GL_TRIANGLES, 0, omni_point_buffer.n_verts); ! glScalef(1.0f/r,1.0f/r,1.0f/r); ! } ! ! glColor4ubv( (GLubyte*)col.col); ! ! glScalef(omni.point[i][j].rad, omni.point[i][j].rad, omni.point[i][j].rad); ! //sphere.draw(omni.point[i][j].pos+model.get_model_offset(omni.point[i][j].model), omni.point[i][j].rad, 2, col); ! glDrawArrays(GL_TRIANGLES, 0, omni_point_buffer.n_verts); ! ! glPopMatrix(); ! ! } } + + glColor4ubv( (GLubyte*)color(255,255,255,255).col); + + + pglUnlockArraysEXT(); + glBindBuffer(GL_ARRAY_BUFFER, 0); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + ERROR_CHECK; + GLfloat AmbientLight[4]={1.0f,1.0f,1.0f,1.0f}; Index: wxGL_PMFCanvas.h =================================================================== RCS file: /cvsroot/alliance/pcs2/wxGL_PMFCanvas.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** wxGL_PMFCanvas.h 14 Jul 2007 12:11:48 -0000 1.16 --- wxGL_PMFCanvas.h 19 Jan 2008 01:55:50 -0000 1.17 *************** *** 33,36 **** --- 33,37 ---- void refresh_omni_points();//when ever omnipoint data //gets changed this gets called to update what is displayed + ogl_vertex_buffer omni_point_buffer;//vertex buffer with geosphere in it // editor data |
From: <bo...@us...> - 2008-01-19 01:51:57
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv7739 Modified Files: pcs_pmf_cob.cpp Log Message: fixed small crash bug in COB import related to insignias, Kazan you should still look at the INSG stuff as I'm seeing some probably not right behaviour, see bug 45 for more details. Index: pcs_pmf_cob.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_cob.cpp,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** pcs_pmf_cob.cpp 18 Jan 2008 18:39:27 -0000 1.28 --- pcs_pmf_cob.cpp 19 Jan 2008 01:51:59 -0000 1.29 *************** *** 11,14 **** --- 11,17 ---- * * $Log$ + * Revision 1.29 2008/01/19 01:51:59 bobboau + * fixed small crash bug in COB import related to insignias, Kazan you should still look at the INSG stuff as I'm seeing some probably not right behaviour, see bug 45 for more details. + * * Revision 1.28 2008/01/18 18:39:27 kazan * Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space *************** *** 317,321 **** if (!_strnicmp(strtmp.c_str(), "InsgLOD", 7)) //"InsgLOD[UU]-[NN]" { ! sscanf(strtmp.c_str(), "InsgLOD%d-%d", &lodnum, j); temp_index_list = GroupPolymodels(InputFile, ShldIndex); --- 320,324 ---- if (!_strnicmp(strtmp.c_str(), "InsgLOD", 7)) //"InsgLOD[UU]-[NN]" { ! sscanf(strtmp.c_str(), "InsgLOD%d-%u", &lodnum, &j); temp_index_list = GroupPolymodels(InputFile, ShldIndex); |
From: <bo...@us...> - 2008-01-18 22:47:14
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv25327 Modified Files: pcs_file.cpp pcs_file.h Log Message: made some changes to the geometry filter to allow it to handle non-coplanar polys better Index: pcs_file.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_file.cpp,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** pcs_file.cpp 14 Jan 2008 11:55:13 -0000 1.60 --- pcs_file.cpp 18 Jan 2008 22:47:14 -0000 1.61 *************** *** 11,14 **** --- 11,17 ---- * * $Log$ + * Revision 1.61 2008/01/18 22:47:14 bobboau + * made some changes to the geometry filter to allow it to handle non-coplanar polys better + * * Revision 1.60 2008/01/14 11:55:13 bobboau * syncroniseing with CVS, nothing important, invisible texture don't draw, and a few added utility functions for the string *************** *** 338,384 **** } ! //fixes concave polygons ! void PCS_Model::filter_polygon(kaz_vector<pcs_polygon>&polys, int i, float test){ ! ! if(polys[i].verts.size() < 4)return; ! //no need ! ! pcs_polygon&poly = polys[i]; ! ! const unsigned int psize = polys[i].verts.size(); ! ! vector3d avg(0,0,0); ! for(unsigned int j = 0; j<psize; j++){ ! avg += poly.verts[j].point; ! } ! avg = avg/psize; ! ! kaz_vector<vector3d> norms(psize); ! vector3d pnorm; ! for(unsigned int j = 0; j<psize; j++){ ! norms[j] = CrossProduct( ! poly.verts[(j+1)%poly.verts.size()].point -poly.verts[j].point, ! poly.verts[(j-1+poly.verts.size())%poly.verts.size()].point -poly.verts[j].point); ! if(!no_nan(norms[j])){ ! norms[j] = vector3d(0,0,0); ! } ! pnorm += norms[j]; ! norms[j] = MakeUnitVector(norms[j]); ! } ! pnorm = MakeUnitVector(pnorm); ! ! ! ! //go through and try to find 2 or more concave points ! ! kaz_vector<int> concaves; - //make up a list of concave points - for(unsigned int j = 0; j<psize; j++){ - if(dot(norms[j], pnorm)<=test){ - //this vert is concave - concaves.push_back(j); - } - } if(concaves.size() == 1){ //in this case there is no other concave point --- 341,349 ---- } ! void interconect_poly_on_verts(kaz_vector<pcs_polygon>&polys, int i, kaz_vector<int>&concaves, vector3d&pnorm){ ! ! pcs_polygon&poly = polys[i]; ! const unsigned int psize = polys[i].verts.size(); if(concaves.size() == 1){ //in this case there is no other concave point *************** *** 394,399 **** //probly ! if(split_poly(polys, i, concaves[0], (concaves[0]+poly.verts.size()/2)%poly.verts.size())){ ! filter_polygon(polys, i, test); //the first split poly will be in the same place as the one we passed } --- 359,364 ---- //probly ! if(PCS_Model::split_poly(polys, i, concaves[0], (concaves[0]+poly.verts.size()/2)%poly.verts.size())){ ! PCS_Model::filter_polygon(polys, i); //the first split poly will be in the same place as the one we passed } *************** *** 439,444 **** //if we found a good pair make the split, if(s < concaves.size()){ ! if(split_poly(polys, i, concaves[s], concaves[t])){ ! filter_polygon(polys, i, test); //the first split poly will be in the same place as the one we passed } --- 404,409 ---- //if we found a good pair make the split, if(s < concaves.size()){ ! if(PCS_Model::split_poly(polys, i, concaves[s], concaves[t])){ ! PCS_Model::filter_polygon(polys, i); //the first split poly will be in the same place as the one we passed } *************** *** 488,493 **** if(s < concaves.size()){ //we found a good split so make it ! if(split_poly(polys, i, concaves[s], t)){ ! filter_polygon(polys, i, test); //the first split poly will be in the same place as the one we passed } --- 453,458 ---- if(s < concaves.size()){ //we found a good split so make it ! if(PCS_Model::split_poly(polys, i, concaves[s], t)){ ! PCS_Model::filter_polygon(polys, i); //the first split poly will be in the same place as the one we passed } *************** *** 498,506 **** } } if(polys[i].verts.size() > 20){ //fix polys with too many verts if(split_poly(polys, i, 0, poly.verts.size()/2)){ ! filter_polygon(polys, i, test); //the first split poly will be in the same place as the one we passed } --- 463,553 ---- } } + } + + //fixes concave polygons + void PCS_Model::filter_polygon(kaz_vector<pcs_polygon>&polys, int i){ + + if(polys[i].verts.size() < 4)return; + //no need + + pcs_polygon&poly = polys[i]; + + unsigned int psize = polys[i].verts.size(); + + vector3d avg(0,0,0); + for(unsigned int j = 0; j<psize; j++){ + avg += poly.verts[j].point; + } + avg = avg/psize; + + kaz_vector<vector3d> norms(psize); + vector3d pnorm; + for(unsigned int j = 0; j<psize; j++){ + norms[j] = CrossProduct( + poly.verts[(j+1)%poly.verts.size()].point -poly.verts[j].point, + poly.verts[(j-1+poly.verts.size())%poly.verts.size()].point -poly.verts[j].point); + if(!no_nan(norms[j])){ + norms[j] = vector3d(0,0,0); + } + pnorm += norms[j]; + norms[j] = MakeUnitVector(norms[j]); + } + pnorm = MakeUnitVector(pnorm); + + + + //go through and try to find 2 or more concave points + + kaz_vector<int> concaves; + + //make up a list of concave points + for(unsigned int j = 0; j<psize; j++){ + if(dot(norms[j], pnorm)<=0.0f){ + //this vert is concave + concaves.push_back(j); + } + } + + interconect_poly_on_verts(polys, i, concaves, pnorm); + + //poly should be convex at this point, more or less + //now lets go for coplanar + + + psize = polys[i].verts.size(); + + norms.resize(psize); + //these need to be rebuilt, because if the above function did anything they are totaly invalid + for(unsigned int j = 0; j<psize; j++){ + norms[j] = CrossProduct( + polys[i].verts[(j+1)%polys[i].verts.size()].point -polys[i].verts[j].point, + polys[i].verts[(j-1+polys[i].verts.size())%polys[i].verts.size()].point -polys[i].verts[j].point); + if(!no_nan(norms[j])){ + norms[j] = vector3d(0,0,0); + } + pnorm += norms[j]; + norms[j] = MakeUnitVector(norms[j]); + } + + pnorm = MakeUnitVector(pnorm); + kaz_vector<int>&nonplanar = concaves;//lets reuse this + nonplanar.resize(0); + + float planar_test = 0.0001f; + //make up a list of nonplanar points + for(unsigned int j = 0; j<psize; j++){ + if(dot(norms[j], pnorm)<=0.999f){ + //this vert is concave + nonplanar.push_back(j); + } + } + + interconect_poly_on_verts(polys, i, nonplanar, pnorm); + if(polys[i].verts.size() > 20){ //fix polys with too many verts if(split_poly(polys, i, 0, poly.verts.size()/2)){ ! filter_polygon(polys, i); //the first split poly will be in the same place as the one we passed } *************** *** 511,515 **** void PCS_Model::filter_geometry(kaz_vector<pcs_polygon>&polys){ for(unsigned int i = 0; i< polys.size(); i++){ ! filter_polygon(polys, i, 0.0f); } } --- 558,562 ---- void PCS_Model::filter_geometry(kaz_vector<pcs_polygon>&polys){ for(unsigned int i = 0; i< polys.size(); i++){ ! filter_polygon(polys, i); } } Index: pcs_file.h =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_file.h,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** pcs_file.h 14 Jan 2008 01:13:30 -0000 1.40 --- pcs_file.h 18 Jan 2008 22:47:14 -0000 1.41 *************** *** 20,23 **** --- 20,26 ---- * * $Log$ + * Revision 1.41 2008/01/18 22:47:14 bobboau + * made some changes to the geometry filter to allow it to handle non-coplanar polys better + * * Revision 1.40 2008/01/14 01:13:30 kazan * Fix memory leak in POF->PMF code *************** *** 301,305 **** //fixes a convex polygon within a list //also fixes polygons whith more than 20 points ! static void PCS_Model::filter_polygon(kaz_vector<pcs_polygon>&polys, int i, float test = 0.0f); //calls the above on all polys in a list --- 304,308 ---- //fixes a convex polygon within a list //also fixes polygons whith more than 20 points ! static void PCS_Model::filter_polygon(kaz_vector<pcs_polygon>&polys, int i); //calls the above on all polys in a list |
From: <ka...@us...> - 2008-01-18 19:35:48
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv16601 Modified Files: fs2dir_screen.ini pcs2_installer.nsi Log Message: Finished the Installer - yay! Index: pcs2_installer.nsi =================================================================== RCS file: /cvsroot/alliance/pcs2/NSIS Scripts/pcs2_installer.nsi,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** pcs2_installer.nsi 18 Jan 2008 19:16:58 -0000 1.3 --- pcs2_installer.nsi 18 Jan 2008 19:35:52 -0000 1.4 *************** *** 63,66 **** --- 63,67 ---- var moddirs var numdirs + var skipini Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" *************** *** 229,232 **** --- 230,234 ---- File "pcs2_readme.txt" File "..\Release\pcs2.exe" + File "..\pcs2.ico" SetOutPath "$INSTDIR\textures" File "textures\invisible.tga" *************** *** 245,248 **** --- 247,252 ---- ; Write INI + IntCmp $skipini 0 writeini inidone inidone + writeini: ${Explode} $numdirs "|" $moddirs !insertmacro ReplaceSubStr $INSTDIR "\" "\\" *************** *** 265,268 **** --- 269,273 ---- FileWrite $3 "numpaths=$4$\r$\n" FileClose $3 + inidone: SectionEnd *************** *** 283,290 **** --- 288,300 ---- # to get values. !insertmacro MUI_INSTALLOPTIONS_READ $freespace2_dir "fs2dir_screen.ini" "Field 2" "State" + !insertmacro MUI_INSTALLOPTIONS_READ $skipini "fs2dir_screen.ini" "Field 4" "State" FunctionEnd Function MODDirs_Screen_Enter # If you need to skip the page depending on a condition, call Abort. + IntCmp $skipini 1 abmods abcont abcont + abmods: + Abort + abcont: ;FileOpen $9 apachesrvin.bat w ;Opens a Empty File an fills it |
From: <ka...@us...> - 2008-01-18 19:16:55
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv9276 Modified Files: moddirs_screen.ini pcs2_installer.nsi Log Message: Everything but the skip for ini generation is working Index: pcs2_installer.nsi =================================================================== RCS file: /cvsroot/alliance/pcs2/NSIS Scripts/pcs2_installer.nsi,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** pcs2_installer.nsi 18 Jan 2008 18:39:26 -0000 1.2 --- pcs2_installer.nsi 18 Jan 2008 19:16:58 -0000 1.3 *************** *** 60,63 **** --- 60,66 ---- ; MUI end ------ + var freespace2_dir + var moddirs + var numdirs Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" *************** *** 68,97 **** ShowUnInstDetails show - Section "MainSection" SEC01 - SetOutPath "$INSTDIR" - SetOverwrite ifnewer - File "..\zlib1.dll" - File "..\libpng13.dll" - File "..\ILUT.dll" - File "..\ILU.dll" - File "..\DevIL.dll" - File "pcs2_readme.txt" - File "..\Release\pcs2.exe" - SetOutPath "$INSTDIR\textures" - File "textures\invisible.tga" - SetOutPath "$INSTDIR" - - ; Shortcuts - !insertmacro MUI_STARTMENU_WRITE_BEGIN Application - CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" - CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\POF Constructor Suite.lnk" "$INSTDIR\pcs2.exe" - CreateShortCut "$DESKTOP\POF Constructor Suite.lnk" "$INSTDIR\pcs2.exe" - !insertmacro MUI_STARTMENU_WRITE_END - - ; File Type Associations - ${registerExtension} "$INSTDIR\pcs2.exe" ".pof" "FreeSpace 2 Parallax Object File" - ${registerExtension} "$INSTDIR\pcs2.exe" ".pmf" "POF Constructor Suite 2.0 Model File" - SectionEnd - ; ----------------------- Explode function from http://nsis.sourceforge.net/Explode ---------------- !define Explode "!insertmacro Explode" --- 71,74 ---- *************** *** 175,180 **** --- 152,271 ---- Push $explArrCount FunctionEnd + + ; This script is derived of a script Written by dirtydingus : + ; "Another String Replace (and Slash/BackSlash Converter)" + ; + ; for more information please see : + ; http://nsis.sourceforge.net/Another_String_Replace_(and_Slash/BackSlash_Converter) + + Var MODIFIED_STR + + !macro ReplaceSubStr OLD_STR SUB_STR REPLACEMENT_STR + + Push "${OLD_STR}" ;String to do replacement in (haystack) + Push "${SUB_STR}" ;String to replace (needle) + Push "${REPLACEMENT_STR}" ; Replacement + Call StrRep + Pop $R0 ;result + StrCpy $MODIFIED_STR $R0 + + !macroend + + ;----------- StrRep From http://nsis.sourceforge.net/Replace_Sub_String_(macro) --------------------------- + Function StrRep + + ;Written by dirtydingus 2003-02-20 04:30:09 + ; USAGE + ;Push String to do replacement in (haystack) + ;Push String to replace (needle) + ;Push Replacement + ;Call StrRep + ;Pop $R0 result + + Exch $R4 ; $R4 = Replacement String + Exch + Exch $R3 ; $R3 = String to replace (needle) + Exch 2 + Exch $R1 ; $R1 = String to do replacement in (haystack) + Push $R2 ; Replaced haystack + Push $R5 ; Len (needle) + Push $R6 ; len (haystack) + Push $R7 ; Scratch reg + StrCpy $R2 "" + StrLen $R5 $R3 + StrLen $R6 $R1 + loop: + StrCpy $R7 $R1 $R5 + StrCmp $R7 $R3 found + StrCpy $R7 $R1 1 ; - optimization can be removed if U know len needle=1 + StrCpy $R2 "$R2$R7" + StrCpy $R1 $R1 $R6 1 + StrCmp $R1 "" done loop + found: + StrCpy $R2 "$R2$R4" + StrCpy $R1 $R1 $R6 $R5 + StrCmp $R1 "" done loop + done: + StrCpy $R3 $R2 + Pop $R7 + Pop $R6 + Pop $R5 + Pop $R2 + Pop $R1 + Pop $R4 + Exch $R3 + + FunctionEnd ;------------------------------------------------------------------------------------------------------ + Section "MainSection" SEC01 + SetOutPath "$INSTDIR" + SetOverwrite ifnewer + File "..\zlib1.dll" + File "..\libpng13.dll" + File "..\ILUT.dll" + File "..\ILU.dll" + File "..\DevIL.dll" + File "pcs2_readme.txt" + File "..\Release\pcs2.exe" + SetOutPath "$INSTDIR\textures" + File "textures\invisible.tga" + SetOutPath "$INSTDIR\temp" + SetOutPath "$INSTDIR" + ; Shortcuts + !insertmacro MUI_STARTMENU_WRITE_BEGIN Application + CreateDirectory "$SMPROGRAMS\$ICONS_GROUP" + CreateShortCut "$SMPROGRAMS\$ICONS_GROUP\POF Constructor Suite.lnk" "$INSTDIR\pcs2.exe" + CreateShortCut "$DESKTOP\POF Constructor Suite.lnk" "$INSTDIR\pcs2.exe" + !insertmacro MUI_STARTMENU_WRITE_END + + ; File Type Associations + ${registerExtension} "$INSTDIR\pcs2.exe" ".pof" "FreeSpace 2 Parallax Object File" + ${registerExtension} "$INSTDIR\pcs2.exe" ".pmf" "POF Constructor Suite 2.0 Model File" + + ; Write INI + ${Explode} $numdirs "|" $moddirs + !insertmacro ReplaceSubStr $INSTDIR "\" "\\" + StrCpy $9 $MODIFIED_STR + !insertmacro ReplaceSubStr $freespace2_dir "\" "\\" + StrCpy $8 $MODIFIED_STR + + FileOpen $3 "$9\pcs2.ini" w + FileWrite $3 "[tpaths]$\r$\n" + FileWrite $3 "path0=.\\$\r$\n" + FileWrite $3 "path1=$9\\textures\\$\r$\n" + FileWrite $3 "path2=$8\\$\r$\n" + ${For} $1 1 $numdirs + Pop $2 + IntOp $4 $1 + 2 + FileWrite $3 "path$4=$8\\$2\\$\r$\n" + ${Next} + FileWrite $3 "temp_path=$9\\temp\\$\r$\n" + IntOp $4 $numdirs + 3 + FileWrite $3 "numpaths=$4$\r$\n" + FileClose $3 + SectionEnd + + Function .onInit !insertmacro MUI_INSTALLOPTIONS_EXTRACT "fs2dir_screen.ini" *************** *** 187,193 **** FunctionEnd - var freespace2_dir - var moddirs - Function FS2Dir_Screen_Leave # Form validation here. Call Abort to go back to the page. --- 278,281 ---- *************** *** 220,223 **** --- 308,315 ---- StrCmp $1 "." readnext StrCmp $1 ".." readnext + StrCmp $1 "data" readnext + StrCmp $1 "ereg" readnext + StrCmp $1 "mindspring" readnext + StrCmp $1 "screenshots" readnext ;FileWrite $3 "Adding: $1$\r$\n" StrCpy $9 "$9|$1" *************** *** 239,243 **** FunctionEnd - var numdirs Function MODDirs_Screen_Leave --- 331,334 ---- *************** *** 245,262 **** # Use !insertmacro MUI_INSTALLOPTIONS_READ $Var "InstallOptionsFile.ini" ... # to get values. ! !insertmacro MUI_INSTALLOPTIONS_READ $moddirs "fs2dir_screen.ini" "Field 2" "ListItems" ! ! ${Explode} $numdirs "|" $moddirs ! ! FileOpen $3 "$INSTDIR\pcs2.ini" w ! FileWrite $3 "[tpaths]$\r$\n" ! FileWrite $3 "path0=.\$\r$\n" ! FileWrite $3 "path1=<appdir>\textures\$\r$\n" ! FileWrite $3 "path2=$freespace2_dir\$\r$\n" ! ${For} $1 1 $numdirs ! Pop $2 ! IntOp $4 $1 + 2 ! FileWrite $3 "path$4=$freespace2_dir\$2\$\r$\n" ! ${Next} FunctionEnd --- 336,343 ---- # Use !insertmacro MUI_INSTALLOPTIONS_READ $Var "InstallOptionsFile.ini" ... # to get values. ! !insertmacro MUI_INSTALLOPTIONS_READ $moddirs "moddirs_screen.ini" "Field 2" "State" ! ;FileOpen $3 "c:\nsis_debug.txt" w ! ;FileWrite $3 "$moddirs\r$\n" ! ;FileClose $3 FunctionEnd *************** *** 301,304 **** --- 382,386 ---- Delete "$INSTDIR\textures\invisible.tga" Delete "$INSTDIR\pcs2.exe" + Delete "$INSTDIR\pcs2.ini" ; File Type Associations *************** *** 311,316 **** RMDir "$SMPROGRAMS\$ICONS_GROUP" ! RMDir "$INSTDIR\textures" ! RMDir "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" --- 393,399 ---- RMDir "$SMPROGRAMS\$ICONS_GROUP" ! RMDir /r "$INSTDIR\temp" ! RMDir /r "$INSTDIR\textures" ! RMDir /r "$INSTDIR" DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" |
From: <ka...@us...> - 2008-01-18 18:40:13
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts/textures In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv26856/textures Added Files: invisible.tga Log Message: add more installer related things --- NEW FILE: Scripts/textures invisible.tga --- |
From: <ka...@us...> - 2008-01-18 18:40:13
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv26856 Added Files: fs2dir_screen.ini moddirs_screen.ini Log Message: add more installer related things --- NEW FILE: Scripts fs2dir_screen.ini --- --- NEW FILE: moddirs_screen.ini --- ; Ini file generated by the HM NIS Edit IO designer. [Settings] NumFields=2 [Field 1] Type=Label Text=Select Valid Mod Directories Left=42 Right=131 Top=13 Bottom=21 [Field 2] Type=Listbox Text=Listbox ListItems= Left=53 Right=194 Top=27 Bottom=126 |
From: <ka...@us...> - 2008-01-18 18:39:29
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv26439 Modified Files: pcs2.cpp pcs2.vcproj pcs_pmf_cob.cpp pcs_pmf_pof.cpp versions.cpp Log Message: Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space add support to .cob specifications for "detail" light - a group with a child light named "detail" will be added as a LOD (this allows .cob's written out by PCS2 to be IMMEDIATELY reloadable and have the hierarchy right!) Index: pcs2.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.cpp,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -d -r1.67 -r1.68 *** pcs2.cpp 11 Jan 2008 06:24:09 -0000 1.67 --- pcs2.cpp 18 Jan 2008 18:39:26 -0000 1.68 *************** *** 12,15 **** --- 12,19 ---- * * $Log$ + * Revision 1.68 2008/01/18 18:39:26 kazan + * Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space + * add support to .cob specifications for "detail" light - a group with a child light named "detail" will be added as a LOD (this allows .cob's written out by PCS2 to be IMMEDIATELY reloadable and have the hierarchy right!) + * * Revision 1.67 2008/01/11 06:24:09 bobboau * fixing a spelling error, and modifyed the suggest box graphic a little *************** *** 276,280 **** int current_model_file; ! wxString BUILD_MODE = "RC1"; wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC3"; //op_gl_funcs GLFunctions; --- 280,284 ---- int current_model_file; ! wxString BUILD_TYPE = "RC2"; wxString PCS2_COMP_VERSION = "PCS 2.0 Compiler Version 2 RC3"; //op_gl_funcs GLFunctions; Index: pcs2.vcproj =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs2.vcproj,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** pcs2.vcproj 12 Jan 2008 18:02:24 -0000 1.28 --- pcs2.vcproj 18 Jan 2008 18:39:26 -0000 1.29 *************** *** 163,166 **** --- 163,167 ---- Detect64BitPortabilityProblems="false" DebugInformationFormat="4" + ForcedIncludeFiles="" /> <Tool Index: pcs_pmf_cob.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_cob.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** pcs_pmf_cob.cpp 12 Jan 2008 18:02:24 -0000 1.27 --- pcs_pmf_cob.cpp 18 Jan 2008 18:39:27 -0000 1.28 *************** *** 11,14 **** --- 11,18 ---- * * $Log$ + * Revision 1.28 2008/01/18 18:39:27 kazan + * Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space + * add support to .cob specifications for "detail" light - a group with a child light named "detail" will be added as a LOD (this allows .cob's written out by PCS2 to be IMMEDIATELY reloadable and have the hierarchy right!) + * * Revision 1.27 2008/01/12 18:02:24 bobboau * revamped the renderer to draw with VBOs current implementation assumes the user's hardware suports them, which is not a good assumption, the old code is still present and will be used as a fall back for when VBOs don't work, but I haven't implemented the code to do the falling back yet, but it's trivial. *************** *** 437,440 **** --- 441,455 ---- } + // check for detail tag light + for (j = 0; j < (unsigned)InputFile.Light_Count(); j++) + { + if(!_stricmp(COBStringtoAPS(InputFile.GetLight(j).name.name).c_str(), "detail") && InputFile.GetLight(j).head.ParentID == temp_group->head.ChunkID) + { + tempobj.parent_sobj = -1; + //this is a detail level, put the reference in the header + this->AddLOD(i); + } + } + strtmp = _strlwr((char*)tempobj.name.c_str()); if (strstr(strtmp.c_str(), "turret") != NULL && LodCount == 0 ) *************** *** 1382,1385 **** --- 1397,1402 ---- { n = RootChunk; + lght_temp = MakeLight("detail", grou_temp.head.ChunkID, ChunkID++, this->subobjects[i].geometric_center/scaler, def_matrix); + OutFile.Add_Lght(lght_temp); } grou_temp = MakeGrou(this->subobjects[i].name, this->subobjects[i].geometric_center/scaler, def_matrix, n, ChunkID++); Index: pcs_pmf_pof.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/pcs_pmf_pof.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** pcs_pmf_pof.cpp 14 Jan 2008 01:40:10 -0000 1.42 --- pcs_pmf_pof.cpp 18 Jan 2008 18:39:27 -0000 1.43 *************** *** 11,14 **** --- 11,18 ---- * * $Log$ + * Revision 1.43 2008/01/18 18:39:27 kazan + * Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space + * add support to .cob specifications for "detail" light - a group with a child light named "detail" will be added as a LOD (this allows .cob's written out by PCS2 to be IMMEDIATELY reloadable and have the hierarchy right!) + * * Revision 1.42 2008/01/14 01:40:10 kazan * wow.. i'm a retard *************** *** 613,622 **** } ! poffile.HDR2_Set_MinBound(minbox); ! poffile.HDR2_Set_MaxBound(maxbox); // update our bounding boxes ! this->header.max_bounding = POFTranslate(minbox); ! this->header.min_bounding = POFTranslate(maxbox); poffile.HDR2_Set_MaxRadius(FindObjectRadius(maxbox, minbox, POFTranslate(header.mass_center))); --- 617,626 ---- } ! poffile.HDR2_Set_MinBound(POFTranslate(minbox)); ! poffile.HDR2_Set_MaxBound(POFTranslate(maxbox)); // update our bounding boxes ! this->header.max_bounding = minbox; ! this->header.min_bounding = maxbox; poffile.HDR2_Set_MaxRadius(FindObjectRadius(maxbox, minbox, POFTranslate(header.mass_center))); *************** *** 660,665 **** header.max_radius = poffile.HDR2_Get_MaxRadius(); ! header.min_bounding = POFTranslate(poffile.HDR2_Get_MinBound()); ! header.max_bounding = POFTranslate(poffile.HDR2_Get_MaxBound()); unsigned int i, j, k; --- 664,669 ---- header.max_radius = poffile.HDR2_Get_MaxRadius(); ! header.min_bounding = poffile.HDR2_Get_MinBound(); ! header.max_bounding = poffile.HDR2_Get_MaxBound(); unsigned int i, j, k; *************** *** 707,711 **** for (i = 0; i < model_info.size(); i++) { ! if (strstr(model_info[i].c_str(), "BSPGEN") || //strstr(model_info[i].c_str(), "POF-CS Compiler v1.3.4") || // removed PCS1 from recognized cacheable list 2008-01-10 - Kazan strstr(model_info[i].c_str(), PCS2_COMP_VERSION)) --- 711,715 ---- for (i = 0; i < model_info.size(); i++) { ! if (strstr(model_info[i].c_str(), "BSPGEN") || // Volition's Compiler //strstr(model_info[i].c_str(), "POF-CS Compiler v1.3.4") || // removed PCS1 from recognized cacheable list 2008-01-10 - Kazan strstr(model_info[i].c_str(), PCS2_COMP_VERSION)) Index: versions.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/versions.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** versions.cpp 9 Jul 2007 00:07:13 -0000 1.2 --- versions.cpp 18 Jan 2008 18:39:27 -0000 1.3 *************** *** 10,18 **** wxString _BUILD_TIME_ = wxString(__DATE__) + " " + wxString(__TIME__); ! extern wxString BUILD_MODE; #ifdef _DEBUG ! wxString PCS2_VERSION = "PCS 2.0 " + BUILD_MODE + " Debug(" + _BUILD_TIME_ + ")"; #else ! wxString PCS2_VERSION = "PCS 2.0 " + BUILD_MODE + " Release(" + _BUILD_TIME_ + ")"; #endif --- 10,18 ---- wxString _BUILD_TIME_ = wxString(__DATE__) + " " + wxString(__TIME__); ! extern wxString BUILD_TYPE; #ifdef _DEBUG ! wxString PCS2_VERSION = "PCS 2.0 " + BUILD_TYPE + " Debug(" + _BUILD_TIME_ + ")"; #else ! wxString PCS2_VERSION = "PCS 2.0 " + BUILD_TYPE + " Release(" + _BUILD_TIME_ + ")"; #endif |
From: <ka...@us...> - 2008-01-18 18:39:28
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv26439/NSIS Scripts Modified Files: pcs2_installer.nsi pcs2_readme.txt Log Message: Was finally able to replicate the bounding box inversion - apparently HDR2 bbox's are in openGL coordinate space NOT BSP coordinate Space add support to .cob specifications for "detail" light - a group with a child light named "detail" will be added as a LOD (this allows .cob's written out by PCS2 to be IMMEDIATELY reloadable and have the hierarchy right!) Index: pcs2_readme.txt =================================================================== RCS file: /cvsroot/alliance/pcs2/NSIS Scripts/pcs2_readme.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** pcs2_readme.txt 18 Jan 2008 16:21:32 -0000 1.1 --- pcs2_readme.txt 18 Jan 2008 18:39:26 -0000 1.2 *************** *** 10,14 **** 1.0 Changes from 1.x --------------------------------------------------- ! --------------------------------------------------- --- 10,17 ---- 1.0 Changes from 1.x --------------------------------------------------- ! A) New Internal file format ! B) New BSP Compiler ! C) New Render Window design + capabilities ! D) Moment of Interia (MOI) --------------------------------------------------- |
From: <ka...@us...> - 2008-01-18 16:24:21
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv915 Added Files: pcs2_installer.nsi Log Message: our NSIS installer script --- NEW FILE: Scripts pcs2_installer.nsi --- |
From: <ka...@us...> - 2008-01-18 16:21:48
|
Update of /cvsroot/alliance/pcs2/NSIS Scripts In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv30750 Added Files: pcs2_readme.txt Log Message: Adding the readme (contains the changelog! make sure to keep that updated!) --- NEW FILE: Scripts pcs2_readme.txt --- |
From: <ka...@us...> - 2008-01-17 19:08:13
|
Update of /cvsroot/alliance/pcs2 In directory sc8-pr-cvs11.sourceforge.net:/tmp/cvs-serv596 Modified Files: COBHandler.cpp Log Message: Fix COB saving Index: COBHandler.cpp =================================================================== RCS file: /cvsroot/alliance/pcs2/COBHandler.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** COBHandler.cpp 18 Oct 2007 15:30:09 -0000 1.10 --- COBHandler.cpp 17 Jan 2008 19:08:03 -0000 1.11 *************** *** 12,15 **** --- 12,18 ---- * * $Log$ + * Revision 1.11 2008/01/17 19:08:03 kazan + * Fix COB saving + * * Revision 1.10 2007/10/18 15:30:09 kazan * fixed a metric ton of memory leaks by finally deprecating COB_String and replacing all instances with kaz_strings *************** *** 289,295 **** OutFile.write((const char *)&materials[i].flags, sizeof(char)); ! itemp = polymodels[i].name.name.length(); OutFile.write((const char *)&itemp, sizeof(short)); ! OutFile.write((const char *)polymodels[i].name.name.c_str(), itemp); OutFile.write((const char *)&materials[i].U_offset, sizeof(float)); --- 292,298 ---- OutFile.write((const char *)&materials[i].flags, sizeof(char)); ! itemp = materials[i].TexMap_Fname.length(); OutFile.write((const char *)&itemp, sizeof(short)); ! OutFile.write((const char *)materials[i].TexMap_Fname.c_str(), itemp); OutFile.write((const char *)&materials[i].U_offset, sizeof(float)); |