gcblue-commits Mailing List for Global Conflict Blue (Page 71)
Status: Alpha
Brought to you by:
ddcforge
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(112) |
Feb
(106) |
Mar
(88) |
Apr
(111) |
May
(53) |
Jun
(60) |
Jul
(58) |
Aug
(61) |
Sep
(45) |
Oct
(31) |
Nov
(71) |
Dec
(70) |
| 2005 |
Jan
(33) |
Feb
(57) |
Mar
(98) |
Apr
(47) |
May
(53) |
Jun
(79) |
Jul
(79) |
Aug
|
Sep
(33) |
Oct
(1) |
Nov
(20) |
Dec
(64) |
| 2006 |
Jan
(20) |
Feb
(1) |
Mar
(43) |
Apr
(11) |
May
(8) |
Jun
(23) |
Jul
|
Aug
(28) |
Sep
(58) |
Oct
(25) |
Nov
(47) |
Dec
(70) |
|
From: <ddc...@us...> - 2004-01-02 15:03:32
|
Update of /cvsroot/gcblue/gcb_wx/maps
In directory sc8-pr-cvs1:/tmp/cvs-serv19093/maps
Added Files:
LICENSE.txt
Log Message:
--- NEW FILE: LICENSE.txt ---
Map files copyright (C) 2002-2003 Dewitt Colclough unless otherwise noted.
Map source data based on GLOBE project data.
Map files may be distributed under the terms of the GCB Data License v1.0.
-------------------------------------------------------------------------------------
GCB Data License v1.0
For the purpose of identifying the copyright holders, this license defines the "GCB Team" as the following people:
* Global Conflict Blue (GCB) Project Manager
* Global Conflict Blue Members
The names and e-mails of those people are listed in the GCB site at the address: http://www.gcblue.com
Material to which this license applies may include the following:
* Texts
* Scenario Files
* 3D Models
* Images
* Sounds
* Musics
TERMS AND CONDITIONS FOR USAGE, COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any material or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this GCB Data License.
1. Terms defined in this Article 1, and parenthetically elsewhere, shall throughout this License have the meanings here and there provided. Defined terms may be used in the singular or plural. Definitions:
* The "Material", below, refers to any such material or work, and a "work based on the Material" means either the Material or any Derivative Work under copyright law.
* "Derivative Work" shall mean a work containing the Material or a portion of it, such as a revision, modification, enhancement, adaptation, translation (including compilation or recompilation by computer), abridgement, condensation, expansion, or any other form in which such preexisting works may be recast, transformed, or adapted, and that, if prepared without authorization of the owner of the copyright in such preexisting work, would constitute a copyright infringement.
* Each licensee is addressed as "you".
2. You may not copy, modify, publish, transmit, sell, participate in the transfer or sale or reproduce, create Derivative Works from, distribute, perform, display or in any way exploit any of the Material released under this License unless expressly permitted by the GCB Team.
3. You may use the provided Material, for personal use only, in conjunction with GCB software directly distributed by the GCB Team.
NO WARRANTY
4. THERE IS NO WARRANTY FOR THE MATERIAL PROVIDED, TO THE EXTENT PERMITTED BY APPLICABLE LAW. THE MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE MATERIAL IS WITH YOU.
5. IN NO EVENT SHALL THE GCB TEAM BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE MATERIAL.
END OF TERMS AND CONDITIONS
|
|
From: <ddc...@us...> - 2004-01-02 15:03:32
|
Update of /cvsroot/gcblue/gcb_wx/images
In directory sc8-pr-cvs1:/tmp/cvs-serv19093/images
Added Files:
LICENSE.txt
Log Message:
--- NEW FILE: LICENSE.txt ---
Image files copyright (C) 2002-2003 Dewitt Colclough unless otherwise noted.
Some images were taken from U.S. Navy Photos archives.
Image files may be distributed under the terms of the GCB Data License v1.0.
-------------------------------------------------------------------------------------
GCB Data License v1.0
For the purpose of identifying the copyright holders, this license defines the "GCB Team" as the following people:
* Global Conflict Blue (GCB) Project Manager
* Global Conflict Blue Members
The names and e-mails of those people are listed in the GCB site at the address: http://www.gcblue.com
Material to which this license applies may include the following:
* Texts
* Scenario Files
* 3D Models
* Images
* Sounds
* Musics
TERMS AND CONDITIONS FOR USAGE, COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any material or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this GCB Data License.
1. Terms defined in this Article 1, and parenthetically elsewhere, shall throughout this License have the meanings here and there provided. Defined terms may be used in the singular or plural. Definitions:
* The "Material", below, refers to any such material or work, and a "work based on the Material" means either the Material or any Derivative Work under copyright law.
* "Derivative Work" shall mean a work containing the Material or a portion of it, such as a revision, modification, enhancement, adaptation, translation (including compilation or recompilation by computer), abridgement, condensation, expansion, or any other form in which such preexisting works may be recast, transformed, or adapted, and that, if prepared without authorization of the owner of the copyright in such preexisting work, would constitute a copyright infringement.
* Each licensee is addressed as "you".
2. You may not copy, modify, publish, transmit, sell, participate in the transfer or sale or reproduce, create Derivative Works from, distribute, perform, display or in any way exploit any of the Material released under this License unless expressly permitted by the GCB Team.
3. You may use the provided Material, for personal use only, in conjunction with GCB software directly distributed by the GCB Team.
NO WARRANTY
4. THERE IS NO WARRANTY FOR THE MATERIAL PROVIDED, TO THE EXTENT PERMITTED BY APPLICABLE LAW. THE MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE MATERIAL IS WITH YOU.
5. IN NO EVENT SHALL THE GCB TEAM BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE MATERIAL.
END OF TERMS AND CONDITIONS
|
|
From: <ddc...@us...> - 2004-01-02 15:03:31
|
Update of /cvsroot/gcblue/gcb_wx/database
In directory sc8-pr-cvs1:/tmp/cvs-serv19093/database
Added Files:
LICENSE.txt
Log Message:
--- NEW FILE: LICENSE.txt ---
Database files Copyright (C) 2002-2003 Dewitt Colclough unless otherwise noted.
Database files may be distributed under the terms of the GCB Data License v1.0.
-------------------------------------------------------------------------------------
GCB Data License v1.0
For the purpose of identifying the copyright holders, this license defines the "GCB Team" as the following people:
* Global Conflict Blue (GCB) Project Manager
* Global Conflict Blue Members
The names and e-mails of those people are listed in the GCB site at the address: http://www.gcblue.com
Material to which this license applies may include the following:
* Texts
* Scenario Files
* 3D Models
* Images
* Sounds
* Musics
TERMS AND CONDITIONS FOR USAGE, COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any material or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this GCB Data License.
1. Terms defined in this Article 1, and parenthetically elsewhere, shall throughout this License have the meanings here and there provided. Defined terms may be used in the singular or plural. Definitions:
* The "Material", below, refers to any such material or work, and a "work based on the Material" means either the Material or any Derivative Work under copyright law.
* "Derivative Work" shall mean a work containing the Material or a portion of it, such as a revision, modification, enhancement, adaptation, translation (including compilation or recompilation by computer), abridgement, condensation, expansion, or any other form in which such preexisting works may be recast, transformed, or adapted, and that, if prepared without authorization of the owner of the copyright in such preexisting work, would constitute a copyright infringement.
* Each licensee is addressed as "you".
2. You may not copy, modify, publish, transmit, sell, participate in the transfer or sale or reproduce, create Derivative Works from, distribute, perform, display or in any way exploit any of the Material released under this License unless expressly permitted by the GCB Team.
3. You may use the provided Material, for personal use only, in conjunction with GCB software directly distributed by the GCB Team.
NO WARRANTY
4. THERE IS NO WARRANTY FOR THE MATERIAL PROVIDED, TO THE EXTENT PERMITTED BY APPLICABLE LAW. THE MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE MATERIAL IS WITH YOU.
5. IN NO EVENT SHALL THE GCB TEAM BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE MATERIAL.
END OF TERMS AND CONDITIONS
|
|
From: <ddc...@us...> - 2004-01-02 15:03:31
|
Update of /cvsroot/gcblue/gcb_wx
In directory sc8-pr-cvs1:/tmp/cvs-serv19093
Added Files:
GCB_DATA _LICENSE.txt
Log Message:
--- NEW FILE: GCB_DATA _LICENSE.txt ---
-------------------------------------------------------------------------------------
GCB Data License v1.0
For the purpose of identifying the copyright holders, this license defines the "GCB Team" as the following people:
* Global Conflict Blue (GCB) Project Manager
* Global Conflict Blue Members
The names and e-mails of those people are listed in the GCB site at the address: http://www.gcblue.com
Material to which this license applies may include the following:
* Texts
* Scenario Files
* 3D Models
* Images
* Sounds
* Musics
TERMS AND CONDITIONS FOR USAGE, COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any material or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this GCB Data License.
1. Terms defined in this Article 1, and parenthetically elsewhere, shall throughout this License have the meanings here and there provided. Defined terms may be used in the singular or plural. Definitions:
* The "Material", below, refers to any such material or work, and a "work based on the Material" means either the Material or any Derivative Work under copyright law.
* "Derivative Work" shall mean a work containing the Material or a portion of it, such as a revision, modification, enhancement, adaptation, translation (including compilation or recompilation by computer), abridgement, condensation, expansion, or any other form in which such preexisting works may be recast, transformed, or adapted, and that, if prepared without authorization of the owner of the copyright in such preexisting work, would constitute a copyright infringement.
* Each licensee is addressed as "you".
2. You may not copy, modify, publish, transmit, sell, participate in the transfer or sale or reproduce, create Derivative Works from, distribute, perform, display or in any way exploit any of the Material released under this License unless expressly permitted by the GCB Team.
3. You may use the provided Material, for personal use only, in conjunction with GCB software directly distributed by the GCB Team.
NO WARRANTY
4. THERE IS NO WARRANTY FOR THE MATERIAL PROVIDED, TO THE EXTENT PERMITTED BY APPLICABLE LAW. THE MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE MATERIAL IS WITH YOU.
5. IN NO EVENT SHALL THE GCB TEAM BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE MATERIAL.
END OF TERMS AND CONDITIONS
|
|
From: <ddc...@us...> - 2004-01-02 15:03:31
|
Update of /cvsroot/gcblue/gcb_wx/3d
In directory sc8-pr-cvs1:/tmp/cvs-serv19093/3d
Added Files:
LICENSE.txt
Log Message:
--- NEW FILE: LICENSE.txt ---
3D Model and texture files Copyright (C) 2002-2003 Marcelo Caceres unless otherwise noted.
3D Model and texture files may be distributed under the terms of the GCB Data License v1.0.
-------------------------------------------------------------------------------------
GCB Data License v1.0
For the purpose of identifying the copyright holders, this license defines the "GCB Team" as the following people:
* Global Conflict Blue (GCB) Project Manager
* Global Conflict Blue Members
The names and e-mails of those people are listed in the GCB site at the address: http://www.gcblue.com
Material to which this license applies may include the following:
* Texts
* Scenario Files
* 3D Models
* Images
* Sounds
* Musics
TERMS AND CONDITIONS FOR USAGE, COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any material or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this GCB Data License.
1. Terms defined in this Article 1, and parenthetically elsewhere, shall throughout this License have the meanings here and there provided. Defined terms may be used in the singular or plural. Definitions:
* The "Material", below, refers to any such material or work, and a "work based on the Material" means either the Material or any Derivative Work under copyright law.
* "Derivative Work" shall mean a work containing the Material or a portion of it, such as a revision, modification, enhancement, adaptation, translation (including compilation or recompilation by computer), abridgement, condensation, expansion, or any other form in which such preexisting works may be recast, transformed, or adapted, and that, if prepared without authorization of the owner of the copyright in such preexisting work, would constitute a copyright infringement.
* Each licensee is addressed as "you".
2. You may not copy, modify, publish, transmit, sell, participate in the transfer or sale or reproduce, create Derivative Works from, distribute, perform, display or in any way exploit any of the Material released under this License unless expressly permitted by the GCB Team.
3. You may use the provided Material, for personal use only, in conjunction with GCB software directly distributed by the GCB Team.
NO WARRANTY
4. THERE IS NO WARRANTY FOR THE MATERIAL PROVIDED, TO THE EXTENT PERMITTED BY APPLICABLE LAW. THE MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE MATERIAL IS WITH YOU.
5. IN NO EVENT SHALL THE GCB TEAM BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE MATERIAL.
END OF TERMS AND CONDITIONS
|
|
From: <ddc...@us...> - 2004-01-02 00:45:21
|
Update of /cvsroot/gcblue/gcb_wx/src/common
In directory sc8-pr-cvs1:/tmp/cvs-serv6686/src/common
Modified Files:
tcSound.cpp
Log Message:
more briefing and scenario generation features
Index: tcSound.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/common/tcSound.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** tcSound.cpp 22 Dec 2003 02:32:37 -0000 1.9
--- tcSound.cpp 1 Jan 2004 23:44:46 -0000 1.10
***************
*** 381,388 ****
{
alGetSourcei(SourceEffect[i],AL_SOURCE_STATE,&play);
! printf(" buffer %d: %d\n",i,play==AL_PLAYING);
if (play!=AL_PLAYING)
{
-
ReleaseEffectBuffer(i);
}
--- 381,387 ----
{
alGetSourcei(SourceEffect[i],AL_SOURCE_STATE,&play);
! //printf(" buffer %d: %d\n",i,play==AL_PLAYING);
if (play!=AL_PLAYING)
{
ReleaseEffectBuffer(i);
}
|
|
From: <ddc...@us...> - 2004-01-02 00:45:10
|
Update of /cvsroot/gcblue/gcb_wx/src/graphics
In directory sc8-pr-cvs1:/tmp/cvs-serv6686/src/graphics
Modified Files:
tcGraphicsEngine.cpp
Log Message:
more briefing and scenario generation features
Index: tcGraphicsEngine.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcGraphicsEngine.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** tcGraphicsEngine.cpp 14 Dec 2003 20:58:47 -0000 1.11
--- tcGraphicsEngine.cpp 1 Jan 2004 23:44:46 -0000 1.12
***************
*** 784,788 ****
{
std::string text = "3D driver does not support alpha-blending. "
! "This may result in slow performance. (";
text += GetDriverInfo();
text += ")\n";
--- 784,788 ----
{
std::string text = "3D driver does not support alpha-blending. "
! "This may result in slow performance. Try F12 to disable elevation map blending. (";
text += GetDriverInfo();
text += ")\n";
|
|
From: <ddc...@us...> - 2004-01-01 23:58:01
|
Update of /cvsroot/gcblue/gcb_data/database In directory sc8-pr-cvs1:/tmp/cvs-serv5934/database Modified Files: air.csv generic.csv launcher.csv missile.csv Log Message: Index: air.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/air.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** air.csv 8 Dec 2003 03:07:27 -0000 1.1 --- air.csv 1 Jan 2004 23:40:34 -0000 1.2 *************** *** 1,3 **** Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Rcs_dbsm,MaxSpeed_kts,Accel_ktsps,TurnRate_degps,FuelCapacity [kg],FuelRate [kg/s],MaxAltitude_m,MaxDepth_m,AltitudeRate_mps,Toughness,Damage,Weight[kg],MaxThrust[N],Range_km,Launcher1,Launcher2,Launcher3,Launcher4,Launcher5,Launcher6,Launcher7,Launcher8,Sensor1,Sensor2,Sensor3,Sensor4,Sensor5,Sensor6,Sensor7,Sensor8,AfterburnFuelRate_kgps,AfterburnThrust_N,DragArea_sm,WingArea_sm,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,MaxAoa_rad,MaxCl,Gmax ! AeroTest1,12,33,NONE,gr3uk,Test aircraft 1,0,1000,20,20,2000,1,15600,0,0,1,0,22000,215000,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,50,500000,200,40,5,10,7,0.9,1.1,0.5,0.1,0.5,5 ! AeroTest2,12,33,NONE,gr3uk,Test aircraft 2,0,1000,20,20,2000,1,15600,0,0,1,0,22000,215000,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,50,500000,200,40,5,25,50,0.9,1.1,0.5,0.1,0.5,5 --- 1,5 ---- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Rcs_dbsm,MaxSpeed_kts,Accel_ktsps,TurnRate_degps,FuelCapacity [kg],FuelRate [kg/s],MaxAltitude_m,MaxDepth_m,AltitudeRate_mps,Toughness,Damage,Weight[kg],MaxThrust[N],Range_km,Launcher1,Launcher2,Launcher3,Launcher4,Launcher5,Launcher6,Launcher7,Launcher8,Sensor1,Sensor2,Sensor3,Sensor4,Sensor5,Sensor6,Sensor7,Sensor8,AfterburnFuelRate_kgps,AfterburnThrust_N,DragArea_sm,WingArea_sm,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,MaxAoa_rad,MaxCl,Gmax ! AeroTest1,12,33,NONE,gr3uk,Test aircraft 1,10,1000,20,20,2000,1,15600,0,0,1,0,22000,215000,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,50,500000,200,40,5,10,7,0.9,1.1,0.3,0.1,0.5,5 ! AeroTest2,12,33,NONE,gr3uk,Test aircraft 2,10,1000,20,20,2000,1,15600,0,0,1,0,22000,215000,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,50,500000,200,40,5,25,50,0.9,1.1,0.3,0.1,0.5,5 ! Mig25,12,33,NONE,m50_co,Mig25 aero model test,10,2000,20,20,5000,1,20000,0,0,1,0,15000,150000,0,AAM Launcher,,,,,,,,Fighter radar,,,,,,,,15,220000,0.93,40,0.7,1.2,1,0.9,1.1,0.3,0.1,0.5,5 ! Harrier GR3a,12,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,1,15600,0,0,1,0,15000,60000,0,AAM-SR Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,,,15,85000,1,40,0.7,5,20,0.9,1.1,0.3,0.1,0.5,5 Index: generic.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/generic.csv,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** generic.csv 8 Dec 2003 03:07:27 -0000 1.2 --- generic.csv 1 Jan 2004 23:40:34 -0000 1.3 *************** *** 4,8 **** Cruiser,1,18,NONE,type45edit,No description is available.,0,32,1,1,0,0,0,0,0,1,0,1,0,0,SAM Launcher,SAM Launcher,SSM Launcher,,,,,,Air search radar,ESM-A,,,,,, Destroyer,1,18,NONE,type45edit,No description is available.,0,30,1,2,0,0,0,0,0,1,0,1,0,0,SAM Launcher,SSM Launcher,,,,,,,Generic radar,,,,,,, ! AEW aircraft,4,33,NONE,fa1uk,No description is available.,0,300,10,8,1000,0,10000,0,0,1,0,1,0,0,,,,,,,,,AEW radar,ESM-A,,,,,, Harrier GR3+,4,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,0,15600,0,0,1,0,22000,21500,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,, Hermes,2,18,NONE,hermes,Model from Marcelo's Falklands set.ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ,0,30,0.25,1,0,0,0,0,0,1,0,1,0,0,SAM Launcher,,,,,,,,Generic radar,,,,,,, --- 4,8 ---- Cruiser,1,18,NONE,type45edit,No description is available.,0,32,1,1,0,0,0,0,0,1,0,1,0,0,SAM Launcher,SAM Launcher,SSM Launcher,,,,,,Air search radar,ESM-A,,,,,, Destroyer,1,18,NONE,type45edit,No description is available.,0,30,1,2,0,0,0,0,0,1,0,1,0,0,SAM Launcher,SSM Launcher,,,,,,,Generic radar,,,,,,, ! AEW aircraft,4,33,NONE,c130e_ar,No description is available.,0,300,10,8,1000,0,10000,0,0,1,0,1,0,0,,,,,,,,,AEW radar,ESM-A,,,,,, Harrier GR3+,4,33,NONE,gr3uk,"Single-engine; ""jump-jet"" fighter-bomber designed to fly from combat areas and aircraft carriers and to support ground forces. It was made by Hawker Siddeley Aviation and first flew on Aug. 31; 1966; after a long period of development.Powered by a vectored-thrust turbofan engine; the plane diverted its engine thrust downward for vertical takeoff using rotatable engine exhaust ports. It could carry a combination of armaments; including air-to-air missiles; air-to-surface antiship missiles; rockets; bombs.ÍÍ",0,639,20,20,1000,0,15600,0,0,1,0,22000,21500,0,AAM Launcher,ASM Launcher,,,,,,,Fighter radar,,,,,,, Hermes,2,18,NONE,hermes,Model from Marcelo's Falklands set.ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ,0,30,0.25,1,0,0,0,0,0,1,0,1,0,0,SAM Launcher,,,,,,,,Generic radar,,,,,,, Index: launcher.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/launcher.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** launcher.csv 30 Nov 2003 18:00:39 -0000 1.1 --- launcher.csv 1 Jan 2004 23:40:34 -0000 1.2 *************** *** 3,5 **** AAM Launcher,0,0,NONE,,No description is available.,4,AAM-I,4,AAM-I,,,,,,,,,,,,,, ASM Launcher,0,0,NONE,,No description is available.,4,ASM-I,4,ASM-I,,,,,,,,,,,,,, ! SSM Launcher,0,0,NONE,,No description is available.,8,SSM-I,8,SSM-I,,,,,,,,,,,,,, --- 3,6 ---- AAM Launcher,0,0,NONE,,No description is available.,4,AAM-I,4,AAM-I,,,,,,,,,,,,,, ASM Launcher,0,0,NONE,,No description is available.,4,ASM-I,4,ASM-I,,,,,,,,,,,,,, ! SSM Launcher,0,0,NONE,,No description is available.,10,SSM-I,10,SSM-I,,,,,,,,,,,,,, ! AAM-SR Launcher,0,0,NONE,,No description is available.,4,AAM-SR,4,AAM-SR,,,,,,,,,,,,,, Index: missile.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_data/database/missile.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** missile.csv 30 Nov 2003 18:00:40 -0000 1.1 --- missile.csv 1 Jan 2004 23:40:34 -0000 1.2 *************** *** 1,5 **** Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Mass_kg,DragArea_sm,Gmax,MaxTurnRate_degps,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,BoostThrust_N,BoostTime_s,SustThrust_N,SustTime_s,Damage,DamageType,Rcs_dbsm,Range_km,ShutdownSpeed_mps,SensorClass1,SensorClass2,Range_km[1],Alt_m[1],AltMode[1],GuidanceMode[1],Range_km[2],Alt_m[2],AltMode[2],GuidanceMode[2],Range_km[3],Alt_m[3],AltMode[3],GuidanceMode[3],Range_km[4],Alt_m[4],AltMode[4],GuidanceMode[4],Range_km[5],Alt_m[5],AltMode[5],GuidanceMode[5],Range_km[6],Alt_m[6],AltMode[6],GuidanceMode[6],Range_km[7],Alt_m[7],AltMode[7],GuidanceMode[7],Range_km[8],Alt_m[8],AltMode[8],GuidanceMode[8],TargetFlags ! ASM-I,5,64,NONE,am39,No description is available.,100.000000,0.010000,20.000000,15.000000,0.200000,0.400000,0.300000,0.900000,1.100000,0.100000,50000.000000,20.000000,20000.000000,120.000000,100.000000,0,10.000000,180.000000,200.000000,ASM Seeker,none,20.000000,15000.000000,0,1,9.000000,5000.000000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 ! AAM-I,5,64,NONE,aim9b,No description is available.,100.000000,0.010000,20.000000,15.000000,0.100000,0.190000,0.125000,0.900000,1.100000,0.100000,80000.000000,5.000000,50000.000000,55.000000,100.000000,0,0.000000,60.000000,200.000000,AAM Seeker,none,30.000000,15000.000000,0,2,9.000000,5000.000000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,2 ! SAM-I,5,64,NONE,roland_sam,No description is available.,80.000000,0.003000,20.000000,15.000000,0.150000,0.200000,0.150000,0.900000,1.100000,0.100000,100000.000000,10.000000,80000.000000,60.000000,100.000000,0,10.000000,120.000000,400.000000,SAM Seeker,none,0.000000,10000.000000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 ! SSM-I,5,64,NONE,mm38,No description is available.,80.000000,0.010000,20.000000,15.000000,0.100000,0.180000,0.130000,0.900000,1.100000,0.100000,45000.000000,300.000000,10000.000000,20.000000,100.000000,0,0.000000,150.000000,150.000000,SSM Seeker,none,20.000000,300.000000,0,1,5.000000,100.000000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 --- 1,6 ---- Database class,Model class id,Functional class id,ImageFileName,3DModelFileName,Description,Mass_kg,DragArea_sm,Gmax,MaxTurnRate_degps,Cdpsub,Cdptran,Cdpsup,Mcm,Msupm,Kdi,BoostThrust_N,BoostTime_s,SustThrust_N,SustTime_s,Damage,DamageType,Rcs_dbsm,Range_km,ShutdownSpeed_mps,SensorClass1,SensorClass2,Range_km[1],Alt_m[1],AltMode[1],GuidanceMode[1],Range_km[2],Alt_m[2],AltMode[2],GuidanceMode[2],Range_km[3],Alt_m[3],AltMode[3],GuidanceMode[3],Range_km[4],Alt_m[4],AltMode[4],GuidanceMode[4],Range_km[5],Alt_m[5],AltMode[5],GuidanceMode[5],Range_km[6],Alt_m[6],AltMode[6],GuidanceMode[6],Range_km[7],Alt_m[7],AltMode[7],GuidanceMode[7],Range_km[8],Alt_m[8],AltMode[8],GuidanceMode[8],TargetFlags ! ASM-I,5,64,NONE,am39,No description is available.,100,0.01,20,15,0.2,0.4,0.3,0.9,1.1,0.1,50000,20,20000,120,100,0,10,180,200,ASM Seeker,none,20,15000,0,1,9,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 ! AAM-I,5,64,NONE,aim9b,No description is available.,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,55,100,0,0,60,200,AAM Seeker,none,30,15000,0,2,9,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,2 ! SAM-I,5,64,NONE,roland_sam,No description is available.,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,60,100,0,10,120,400,SAM Seeker,none,0,10000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,10 ! SSM-I,5,64,NONE,mm38,No description is available.,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,45000,300,10000,20,100,0,0,150,150,SSM Seeker,none,20,300,0,1,5,100,2,2,,,,,,,,,,,,,,,,,,,,,,,,,1 ! AAM-SR,5,64,NONE,aim9b,Short range air-to-air generic,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,20,100,0,0,60,200,AAM Seeker,none,0,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2 |
|
From: <ddc...@us...> - 2004-01-01 23:46:50
|
Update of /cvsroot/gcblue/gcb_wx/include/scriptinterface
In directory sc8-pr-cvs1:/tmp/cvs-serv6686/include/scriptinterface
Modified Files:
tcScenarioInterface.h
Log Message:
more briefing and scenario generation features
Index: tcScenarioInterface.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/scriptinterface/tcScenarioInterface.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** tcScenarioInterface.h 31 Dec 2003 17:34:10 -0000 1.5
--- tcScenarioInterface.h 1 Jan 2004 23:44:46 -0000 1.6
***************
*** 66,70 ****
void AddOrder(tcOrder order);
! void SetDatum(double lon_deg, double lat_deg, float alt_m);
};
/**
--- 66,72 ----
void AddOrder(tcOrder order);
! void ClearOrders();
! void SetPosition(double lon_deg, double lat_deg, float alt_m);
! bool Validate();
};
/**
***************
*** 109,115 ****
void MapText(std::string text, double lon_deg, double lat_deg, double duration, int effect);
! // camera events
void FlybyCamera(std::string unitName, double duration, float az1_deg, float az2_deg,
float el1_deg, float el2_deg, float r1_m, float r2_m);
// goal class creation methods (cannot find a way to do directly)
--- 111,120 ----
void MapText(std::string text, double lon_deg, double lat_deg, double duration, int effect);
! // camera and 3D events
void FlybyCamera(std::string unitName, double duration, float az1_deg, float az2_deg,
float el1_deg, float el2_deg, float r1_m, float r2_m);
+ void TrackCamera(std::string unitName, double duration, float x1, float x2,
+ float y1, float y2, float z1, float z2);
+ void Text3D(std::string text, double duration, float x, float y, float size, int effect);
// goal class creation methods (cannot find a way to do directly)
|
|
From: <ddc...@us...> - 2004-01-01 23:46:47
|
Update of /cvsroot/gcblue/gcb_wx/src/scriptinterface
In directory sc8-pr-cvs1:/tmp/cvs-serv6686/src/scriptinterface
Modified Files:
tcScenarioInterface.cpp
Log Message:
more briefing and scenario generation features
Index: tcScenarioInterface.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcScenarioInterface.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** tcScenarioInterface.cpp 31 Dec 2003 17:34:10 -0000 1.6
--- tcScenarioInterface.cpp 1 Jan 2004 23:44:47 -0000 1.7
***************
*** 56,60 ****
}
! void tcScenarioUnit::SetDatum(double lon_deg, double lat_deg, float alt_m)
{
lon = lon_deg;
--- 56,65 ----
}
! void tcScenarioUnit::ClearOrders()
! {
! orders.clear();
! }
!
! void tcScenarioUnit::SetPosition(double lon_deg, double lat_deg, float alt_m)
{
lon = lon_deg;
***************
*** 63,66 ****
--- 68,92 ----
}
+ /**
+ * Test that fields are valid. Display message box if not.
+ * @return true if validation okay
+ */
+ bool tcScenarioUnit::Validate()
+ {
+ if (className == "Not defined")
+ {
+ wxMessageBox("Scenario unit class not defined","Error",wxICON_ERROR);
+ return false;
+ }
+ if (unitName == "Not defined")
+ {
+ wxString s = wxString::Format("Scenario unit name not defined (class: %s)",className.c_str());
+ wxMessageBox(s.c_str(),"Error",wxICON_ERROR);
+ return false;
+ }
+ return true;
+
+ }
+
tcDirector* tcScenarioInterface::director = NULL;
tcMapData* tcScenarioInterface::mapData = NULL;
***************
*** 93,97 ****
.def_readwrite("speed",&tcScenarioUnit::speed)
.def("AddOrder",&tcScenarioUnit::AddOrder)
! .def("SetDatum",&tcScenarioUnit::SetDatum)
;
--- 119,124 ----
.def_readwrite("speed",&tcScenarioUnit::speed)
.def("AddOrder",&tcScenarioUnit::AddOrder)
! .def("ClearOrders",&tcScenarioUnit::ClearOrders)
! .def("SetPosition",&tcScenarioUnit::SetPosition)
;
***************
*** 128,131 ****
--- 155,160 ----
// camera and 3D viewer events
.def("FlybyCamera",&tcScenarioInterface::FlybyCamera)
+ .def("TrackCamera",&tcScenarioInterface::TrackCamera)
+ .def("Text3D",&tcScenarioInterface::Text3D)
// goal creation workaround
.def("CompoundGoal",&tcScenarioInterface::CompoundGoal)
***************
*** 140,143 ****
--- 169,174 ----
bool tcScenarioInterface::AddUnitToAlliance(tcScenarioUnit unit, int alliance)
{
+ if (!unit.Validate()) return false;
+
tcDatabaseObject *dbObj = simState->mpDatabase->GetObject(unit.className);
if (dbObj == NULL)
***************
*** 439,442 ****
--- 470,500 ----
C_PIOVER180*el1_deg, C_PIOVER180*el2_deg,
r1_m, r2_m));
+ }
+
+ void tcScenarioInterface::TrackCamera(std::string unitName, double duration, float x1, float x2,
+ float y1, float y2, float z1, float z2)
+ {
+ wxASSERT(director);
+
+ // repeated code from HookPlatform, refactor this
+ wxASSERT(simState);
+ tcGameObject* obj = simState->GetObjectByName(unitName);
+ if (obj == NULL)
+ {
+ std::cerr << "TrackCamera: Object not found ("
+ << unitName << ")\n";
+ return;
+ }
+ director->AddEvent(new tcTrackCameraEvent(eventTime, eventTime+duration, obj->mnID,
+ x1, x2, y1, y2, z1, z2));
+ }
+
+ void tcScenarioInterface::Text3D(std::string text, double duration,
+ float x, float y, float size, int effect)
+ {
+ wxASSERT(director);
+
+ director->AddEvent(new tc3DTextEvent(text, eventTime, eventTime+duration,
+ x, y, size, effect));
}
|
|
From: <ddc...@us...> - 2004-01-01 23:46:36
|
Update of /cvsroot/gcblue/gcb_wx/src/sim
In directory sc8-pr-cvs1:/tmp/cvs-serv6686/src/sim
Modified Files:
tc3DViewer.cpp tcDirector.cpp tcDirectorEvent.cpp
tcScenarioSelectView.cpp tcSimState.cpp
Log Message:
more briefing and scenario generation features
Index: tc3DViewer.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tc3DViewer.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** tc3DViewer.cpp 31 Dec 2003 00:23:23 -0000 1.22
--- tc3DViewer.cpp 1 Jan 2004 23:44:47 -0000 1.23
***************
*** 103,106 ****
--- 103,110 ----
}
+ /**
+ * Need to generalize this to handle different types of camera
+ * moves.
+ */
void tc3DViewer::OnLButtonDown(wxMouseEvent& event)
{
***************
*** 110,113 ****
--- 114,118 ----
azStart = cameraAz;
elStart = cameraEl;
+ usePolarOffset = true;
}
***************
*** 225,228 ****
--- 230,239 ----
}
+ void tc3DViewer::SetCartesianOffset(float x, float y, float z)
+ {
+ cameraPositionOffset.set(x, y, z);
+ usePolarOffset = false;
+ }
+
void tc3DViewer::SetGameTime(double t)
{
***************
*** 247,255 ****
}
! void tc3DViewer::SetMoveWithVector(float az, float el, float range)
{
cameraAz = az;
cameraEl = el;
cameraRange = range;
}
--- 258,267 ----
}
! void tc3DViewer::SetPolarOffset(float az, float el, float range)
{
cameraAz = az;
cameraEl = el;
cameraRange = range;
+ usePolarOffset = true;
}
***************
*** 308,311 ****
--- 320,337 ----
+ /**
+ * Adds text drawable to textGeode. Take care with reference count
+ * issues with doing it this way.
+ */
+ void tc3DViewer::AddText(osgText::Text *text)
+ {
+ textGeode->addDrawable(text);
+ }
+
+
+ void tc3DViewer::RemoveText(osgText::Text *text)
+ {
+ textGeode->removeDrawable(text);
+ }
void tc3DViewer::CreateScene()
***************
*** 472,479 ****
if (moveWithTarget)
{
! float camx = cosf(cameraEl)*sinf(cameraAz);
! float camy = cosf(cameraEl)*cosf(cameraAz);
! float camz = sinf(cameraEl);
! Producer::Vec3 camOffset = Producer::Vec3(camx,camy,camz)*cameraRange;
Producer::Matrix m = Producer::Matrix::translate(camOffset);
cameraPosition = targetPosition*m;
--- 498,513 ----
if (moveWithTarget)
{
! Producer::Vec3 camOffset;
! if (usePolarOffset)
! {
! float camx = cosf(cameraEl)*sinf(cameraAz);
! float camy = cosf(cameraEl)*cosf(cameraAz);
! float camz = sinf(cameraEl);
! camOffset = Producer::Vec3(camx,camy,camz)*cameraRange;
! }
! else
! {
! camOffset = cameraPositionOffset;
! }
Producer::Matrix m = Producer::Matrix::translate(camOffset);
cameraPosition = targetPosition*m;
***************
*** 842,845 ****
--- 876,880 ----
moveWithTarget = true;
lookAtTarget = true;
+ usePolarOffset = true;
cameraLongitude = 0;
cameraLatitude = 0;
Index: tcDirector.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcDirector.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tcDirector.cpp 31 Dec 2003 17:34:10 -0000 1.4
--- tcDirector.cpp 1 Jan 2004 23:44:47 -0000 1.5
***************
*** 80,98 ****
AddEvent(new tcConsoleTextEvent("Engage enemy to the Northwest",5));
! AddEvent(new tcMapViewEvent(mapView, 9, -5.9, 49.5, 4.0));
! AddEvent(new tcSoundEffectEvent(9,SEFFECT_THUCK));
! AddEvent(new tcMapTextEvent(mapView,"OPFOR",9.0,25.0f,-6.0, 49.9,1));
AddEvent(new tcConsoleTextEvent("",12));
! AddEvent(new tcConsoleTextEvent("Enemy is believed to be a medium sized task force",16));
! AddEvent(new tcConsoleTextEvent("similar in makeup to your own.",16));
! AddEvent(new tcConsoleTextEvent("",20));
! AddEvent(new tcConsoleTextEvent("Extreme caution is advised",20));
! AddEvent(new tcConsoleTextEvent("",22));
! AddEvent(new tcConsoleTextEvent("Good hunting",22));
! AddEvent(new tcGameCommandEvent(ID_SETPAUSE, 25 , 0));
! AddEvent(new tcGameCommandEvent(ID_SETBRIEFING, 25, 0));
! AddEvent(new tcGameCommandEvent(ID_SET3D, 25, 1)); // deactivate 3D window
//AddEvent(new tcMapViewEvent(mapView, 24, -5.9, 49.5, 4.0));
}
--- 80,98 ----
AddEvent(new tcConsoleTextEvent("Engage enemy to the Northwest",5));
! AddEvent(new tcMapViewEvent(mapView, 7, -5.9, 49.5, 4.0));
! AddEvent(new tcSoundEffectEvent(7,SEFFECT_THUCK));
! AddEvent(new tcMapTextEvent(mapView,"OPFOR",7.0,18.0f,-6.0, 49.9,1));
+ AddEvent(new tcConsoleTextEvent("",9));
+ AddEvent(new tcConsoleTextEvent("Enemy is believed to be a medium sized task force",9));
+ AddEvent(new tcConsoleTextEvent("similar in makeup to your own.",9));
AddEvent(new tcConsoleTextEvent("",12));
! AddEvent(new tcConsoleTextEvent("Extreme caution is advised",12));
! AddEvent(new tcConsoleTextEvent("",13));
! AddEvent(new tcConsoleTextEvent("Good hunting",13));
! AddEvent(new tcGameCommandEvent(ID_SETPAUSE, 18 , 0));
! AddEvent(new tcGameCommandEvent(ID_SETBRIEFING, 18, 0));
! AddEvent(new tcGameCommandEvent(ID_SET3D, 18, 1)); // deactivate 3D window
//AddEvent(new tcMapViewEvent(mapView, 24, -5.9, 49.5, 4.0));
}
Index: tcDirectorEvent.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcDirectorEvent.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tcDirectorEvent.cpp 31 Dec 2003 17:34:10 -0000 1.3
--- tcDirectorEvent.cpp 1 Jan 2004 23:44:47 -0000 1.4
***************
*** 36,39 ****
--- 36,41 ----
#include "tc3DViewer.h"
#include "math_constants.h"
+ #include <osgText/Text>
+ #include <osg/Vec3> // tc3DTextEvent
using MapView::tcMapView;
***************
*** 353,357 ****
float range = startRange + k*(stopRange - startRange);
! viewer->SetMoveWithVector(az, el, range);
}
--- 355,359 ----
float range = startRange + k*(stopRange - startRange);
! viewer->SetPolarOffset(az, el, range);
}
***************
*** 375,377 ****
tcFlybyCameraEvent::~tcFlybyCameraEvent()
{
! }
\ No newline at end of file
--- 377,496 ----
tcFlybyCameraEvent::~tcFlybyCameraEvent()
{
! }
!
! /********** tcTrackCameraEvent *****************/
! void tcTrackCameraEvent::Update(double t)
! {
! tcCameraEvent::Update(t);
!
! if (!triggered) return;
! if (t > eventStop) return;
!
! float k = (eventStart == eventStop) ? 0 : (t - eventStart)/(eventStop - eventStart);
! float x = startX + k*(stopX - startX);
! float y = startY + k*(stopY - startY);
! float z = startZ + k*(stopZ - startZ);
!
! viewer->SetCartesianOffset(x, y, z);
! }
!
! tcTrackCameraEvent::tcTrackCameraEvent(double tStart, double tStop, long targID,
! float x1, float x2, float y1, float y2, float z1, float z2 )
! : tcCameraEvent(tStart,tStop)
! {
! targetID = targID;
! moveWithTarget = true;
! lookAtTarget = true;
!
! startX = x1;
! startY = y1;
! startZ = z1;
! stopX = x2;
! stopY = y2;
! stopZ = z2;
! }
!
! tcTrackCameraEvent::~tcTrackCameraEvent()
! {
! }
!
! /******** tc3DTextEvent *************/
!
! void tc3DTextEvent::Update(double t)
! {
! if (t >= eventStop)
! {
! if (unsigned nParents = viewerText->getNumParents())
! {
! wxASSERT(nParents == 1);
! viewer->RemoveText(viewerText.get());
! }
! return;
! }
! else if (t >= eventStart)
! {
! if (viewerText->getNumParents() == 0)
! {
! wxSize viewerSize = viewer->GetSize();
! float x = textx * (float)viewerSize.GetWidth();
! float y = texty * (float)viewerSize.GetHeight();
! viewerText->setPosition(osg::Vec3(x,y,0.0f));
! viewer->AddText(viewerText.get());
! }
! if (effectCode == 1) // alpha blend
! {
! double tspan = eventStop - eventStart;
! double dt = t - eventStart;
! double tfract = (tspan != 0) ? dt/tspan : 1.0f; // fraction of active time span
! double alpha;
!
! const float a = 0.2;
! const float ainv = 1.0/a;
!
! if (tfract < a)
! alpha = ainv*tfract;
! else if (tfract > (1.0f-a))
! alpha = ainv*(1-tfract);
! else
! alpha = 1.0;
!
! viewerText->setColor(osg::Vec4(1.0f,1.0f,1.0f,alpha));
! }
!
! }
! }
!
! /**
! * x and y are normalized to screen width and height, e.g. 0.5, 0.5 is center of
! * screen.
! */
! tc3DTextEvent::tc3DTextEvent(std::string text, double startTime, double endTime,
! float x, float y, float size, int effect)
! : tcCameraEvent(startTime, endTime)
! {
! theText = text;
! fontSize = size;
! textx = x;
! texty = y;
! effectCode = effect;
!
! viewerText = new osgText::Text;
! osgText::Font* font = osgText::readFontFile("fonts/arial.ttf");
! osg::Vec4 layoutColor(1.0f,1.0f,1.0f,1.0f);
!
! viewerText->setFont(font);
! viewerText->setColor(layoutColor);
! viewerText->setCharacterSize(fontSize, 1.2f); // font height, aspect ratio
! viewerText->setPosition(osg::Vec3(40,40,0.0f));
! viewerText->setLayout(osgText::Text::LEFT_TO_RIGHT);
! viewerText->setFontResolution(32,32);
! viewerText->setText(theText.c_str());
! }
!
! /**
! * viewerText automatically deleted via ref_ptr
! */
! tc3DTextEvent::~tc3DTextEvent()
! {
! }
!
Index: tcScenarioSelectView.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcScenarioSelectView.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** tcScenarioSelectView.cpp 29 Dec 2003 01:10:25 -0000 1.11
--- tcScenarioSelectView.cpp 1 Jan 2004 23:44:47 -0000 1.12
***************
*** 350,353 ****
--- 350,360 ----
path += caption->GetBuffer();
mpSimState->mpPythonInterface->LoadScenario(path.c_str(),caption->GetBuffer());
+ if (!mpSimState->msScenarioInfo.mbLoaded)
+ {
+ wxString s =
+ wxString::Format("Error in scenario %s. Check pyerr.txt for details.",
+ path.c_str());
+ wxMessageBox(s.c_str(),"Error",wxICON_ERROR);
+ }
}
}
Index: tcSimState.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcSimState.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** tcSimState.cpp 29 Dec 2003 01:10:25 -0000 1.19
--- tcSimState.cpp 1 Jan 2004 23:44:47 -0000 1.20
***************
*** 1395,1402 ****
tnPoolIndex nKey;
- maPlatformState.GetNextAssoc(pos,nKey,obj);
for (unsigned i=0;i<nSize;i++)
{
maPlatformState.GetNextAssoc(pos,nKey,obj);
if (unitName == obj->mzUnit.mz)
{
--- 1395,1402 ----
tnPoolIndex nKey;
for (unsigned i=0;i<nSize;i++)
{
maPlatformState.GetNextAssoc(pos,nKey,obj);
+ wxASSERT(obj);
if (unitName == obj->mzUnit.mz)
{
***************
*** 1461,1465 ****
tnPoolIndex nKey;
! int k = rand() % nSize;
maPlatformState.GetNextAssoc(cmappos,nKey,pplat);
for (int i=0;i<k;i++) {
--- 1461,1465 ----
tnPoolIndex nKey;
! int k = rand() % nSize; // k [0,nSize-1]
maPlatformState.GetNextAssoc(cmappos,nKey,pplat);
for (int i=0;i<k;i++) {
|
|
From: <ddc...@us...> - 2004-01-01 23:46:31
|
Update of /cvsroot/gcblue/gcb_wx/include/sim
In directory sc8-pr-cvs1:/tmp/cvs-serv6686/include/sim
Modified Files:
tc3DViewer.h tcDirectorEvent.h
Log Message:
more briefing and scenario generation features
Index: tc3DViewer.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tc3DViewer.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** tc3DViewer.h 31 Dec 2003 00:23:22 -0000 1.16
--- tc3DViewer.h 1 Jan 2004 23:44:46 -0000 1.17
***************
*** 66,70 ****
osg::ref_ptr<osgProducer::OsgCameraGroup> camera_group;
osg::ref_ptr<osg::NodeVisitor> updateVisitor;
! osg::ref_ptr<osgText::Text> viewerText;
osg::ref_ptr<osg::MatrixTransform> hudObjects; ///< add HUD objects to this transform
osg::ref_ptr<osg::Projection> orthoProjection; ///< ortho projection for HUD objects
--- 66,70 ----
osg::ref_ptr<osgProducer::OsgCameraGroup> camera_group;
osg::ref_ptr<osg::NodeVisitor> updateVisitor;
! osg::ref_ptr<osgText::Text> viewerText; ///< text for debug/basic viewer info display
osg::ref_ptr<osg::MatrixTransform> hudObjects; ///< add HUD objects to this transform
osg::ref_ptr<osg::Projection> orthoProjection; ///< ortho projection for HUD objects
***************
*** 98,101 ****
--- 98,103 ----
void SkipMouseEvent(wxMouseEvent& event); ///< adjusts position to parent frame
+ void AddText(osgText::Text *text);
+ void RemoveText(osgText::Text *text);
void CreateScene();
void CreateSky();
***************
*** 113,117 ****
void SetHookID(long id) {hookID = id;}
void SetLook(float az, float el);
! void SetMoveWithVector(float az, float el, float range);
void SetText(const char *s);
void ToggleFog();
--- 115,120 ----
void SetHookID(long id) {hookID = id;}
void SetLook(float az, float el);
! void SetCartesianOffset(float x, float y, float z);
! void SetPolarOffset(float az, float el, float range);
void SetText(const char *s);
void ToggleFog();
***************
*** 149,156 ****
--- 152,161 ----
bool lookAtTarget; ///< true to make camera point at target
bool moveWithTarget; ///< true to make camera move with target
+ bool usePolarOffset; ///< uses cameraAz, cameraEl, cameraRange for moveWith if true, otherwise use cameraPositionOffset
double cameraLongitude; ///< lon,lat,alt pos of camera for non moveWith modes
double cameraLatitude; ///< radians
float cameraAltitude; ///< meters
Producer::Vec3 cameraPosition; ///< current position of camera
+ Producer::Vec3 cameraPositionOffset; ///< current position offset of camera rel to target, for moveWith
Producer::Vec3 cameraTarget; ///< point camera is looking at for lookAt modes
float cameraAz; ///< camera azimuth relative to target for moveWith modes
Index: tcDirectorEvent.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcDirectorEvent.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tcDirectorEvent.h 31 Dec 2003 17:34:10 -0000 1.3
--- tcDirectorEvent.h 1 Jan 2004 23:44:46 -0000 1.4
***************
*** 30,33 ****
--- 30,35 ----
#include <string>
#include <Producer/Math>
+ #include <osg/ref_ptr>
+ //#include <osgText/Text> // for tc3DTextEvent
class tcMapObject;
***************
*** 42,45 ****
--- 44,57 ----
class tc3DViewer;
+ namespace osg
+ {
+ class ref_ptr;
+ }
+
+ namespace osgText
+ {
+ class Text;
+ }
+
using MapView::tcMapView;
/**
***************
*** 204,207 ****
--- 216,223 ----
};
+ /**
+ * A camera that is locked to a target with az/el/range that
+ * can change over the camera move. Name is not the best.
+ */
class tcFlybyCameraEvent : public tcCameraEvent
{
***************
*** 221,224 ****
--- 237,282 ----
};
+ /**
+ * Camera that moves in (x,y,z) relative to target. Same as
+ * FlybyCamera otherwise.
+ */
+ class tcTrackCameraEvent : public tcCameraEvent
+ {
+ public:
+ float startX;
+ float startY;
+ float startZ;
+ float stopX;
+ float stopY;
+ float stopZ;
+
+ virtual void Update(double t);
+
+ tcTrackCameraEvent(double tStart, double tStop, long targID,
+ float x1, float x2, float y1, float y2, float z1, float z2 );
+ virtual ~tcTrackCameraEvent();
+ };
+
+ /**
+ * Adds to viewer and maintains an osgText::Text object to
+ * display 3D text effects for briefing.
+ */
+ class tc3DTextEvent : public tcCameraEvent
+ {
+ public:
+ std::string theText;
+ float fontSize;
+ float textx, texty; ///< normalized text coordinates
+ int effectCode;
+
+ virtual void Update(double t);
+
+ tc3DTextEvent(std::string text, double startTime, double endTime,
+ float x, float y, float size, int effect);
+ virtual ~tc3DTextEvent();
+
+ protected:
+ osg::ref_ptr<osgText::Text> viewerText;
+ };
#endif
|
|
From: <ddc...@us...> - 2004-01-01 23:41:32
|
Update of /cvsroot/gcblue/gcb_data/images In directory sc8-pr-cvs1:/tmp/cvs-serv5934/images Modified Files: start_background.jpg Log Message: Index: start_background.jpg =================================================================== RCS file: /cvsroot/gcblue/gcb_data/images/start_background.jpg,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsmivpEy and /tmp/cvseuDYRW differ |
|
From: <ddc...@us...> - 2004-01-01 23:41:23
|
Update of /cvsroot/gcblue/gcb_data/scenario
In directory sc8-pr-cvs1:/tmp/cvs-serv5934/scenario
Added Files:
FourOnFourAir.py SurfAir.py
Removed Files:
Test1.txt TestScenarioA.txt
Log Message:
--- NEW FILE: FourOnFourAir.py ---
# SM is ScenarioManager object
def CreateScenario(SM):
SM.CreateAlliance(1, 'Friendly')
SM.CreateAlliance(2, 'OPFOR')
SM.SetUserAlliance(1)
SM.SetScenarioDescription('A test scenario with 4 generic aircraft on each side')
SM.SetScenarioLoaded(1)
SM.SetScenarioName('Test Scenario A')
SM.SetDateTime(2004, 4, 15, 17, 0, 0)
unit = SM.GetDefaultUnit()
order = SM.GetDefaultOrder()
order.SetOrderName('Patrol')
unit.AddOrder(order)
nAir = 4
for n in range(0, nAir):
### Add Alliance 1 aircraft
unit = SM.GetDefaultUnit()
unit.className = 'Generic aircraft'
unitName = 'Tiger %d' % n
unit.unitName = unitName
unit.lat = 49.8 + 0.025*n
unit.lon = -4.5
unit.alt = 1500
unit.heading = 270
unit.speed = 0.7
SM.AddUnitToAlliance(unit, 1)
### Add Alliance 2 aircraft
unit = SM.GetDefaultUnit()
order = SM.GetDefaultOrder()
order.SetOrderName('Patrol')
unit.AddOrder(order)
unit.className = 'Generic aircraft'
unitName = 'Bear %d' % n
unit.unitName = unitName
unit.lat = 50 + 0.08*n
unit.lon = -5.5 + 0.025*n
unit.alt = 1500
unit.heading = 90
unit.speed = 0.7
SM.AddUnitToAlliance(unit, 2)
# add goals
AddGoals(SM)
def AddGoals(SM):
# alliance 1 goals
goal_1a = SM.DestroyGoal('Bear 1')
goal_1b = SM.DestroyGoal('Bear 2')
goal_1 = SM.CompoundGoal(0) # 0 - AND, 1 - OR
goal_1.AddGoal(goal_1a)
goal_1.AddGoal(goal_1b)
SM.SetAllianceGoal(1, goal_1)
# alliance 2 goals
goal_2 = SM.DestroyGoal('Tiger 1')
SM.SetAllianceGoal(2, goal_2)
# BM is BriefingManager (same as ScenarioManager for now) object
def CreateBriefing(BM):
BM.SetEventTime(0)
BM.Pause()
BM.PauseAudio()
BM.SetBriefingMode(1) # 0 - normal tactical display, 1 - briefing disp
BM.Set3DMode(0) # 0 - off, 1 - small, 2 - med, 3 - full screen
BM.ConsoleText('Test of the briefing system follows...')
BM.SetEventTime(4)
BM.ConsoleText('') # a blank line
BM.ConsoleText('Destroy the aircraft to the Northwest')
BM.ConsoleText('Protect Tiger 1')
BM.ConsoleText('')
BM.ConsoleText('Zooming map...')
BM.SetEventTime(7)
BM.ChangeMapView(-5.5, 50.1, 4.0) # (lon, lat, lon span) in degrees
BM.SetEventTime(8)
BM.ConsoleText('')
BM.ConsoleText('Text can be displayed on the map like this')
BM.SetEventTime(9)
# text, lon, lat, duration in seconds, 0 - no effect, 1 - blend effect
BM.MapText('Here is where the enemy is', -5.5, 50.1, 12, 1)
BM.SetEventTime(10)
BM.MapText('These are your forces', -4.5, 49.8, 10, 1)
BM.SetEventTime(12)
BM.HookPlatform('Tiger 1')
BM.ConsoleText('3D camera moves can be scripted')
BM.SetEventTime(16)
BM.Set3DMode(2) # large 3D, console still visible
# unit, duration, az1, az2, el1, el2, range1, range2
BM.ConsoleText('')
BM.ConsoleText('This is a slow rotation view');
BM.FlybyCamera('Tiger 1', 10.0, 120, 180, 5, 5, 55, 50)
# text, duration, x, y, font size, effect
BM.Text3D('Tiger 1', 10.0, 0.5, 0.5, 32.0, 1)
BM.SetEventTime(27)
BM.ConsoleText('')
BM.ConsoleText('This is a zoom out');
BM.FlybyCamera('Tiger 1', 10.0, 180, 180, 5, 5, 50, 200)
BM.SetEventTime(37)
BM.Set3DMode(1)
BM.ConsoleText('')
BM.ConsoleText('On to the mission, Good hunting.')
BM.SetEventTime(40)
BM.Set3DMode(1)
BM.SetBriefingMode(0) # leave briefing mode
BM.PlayAudio('tension1',0) # name, seek time from beginning of song
BM.Resume() # resumes game
--- NEW FILE: SurfAir.py ---
# SM is ScenarioManager object
def CreateScenario(SM):
SM.CreateAlliance(1, 'Friendly')
SM.CreateAlliance(2, 'OPFOR')
SM.SetUserAlliance(1)
SM.SetScenarioDescription('Test scenario, surface and air on each side')
SM.SetScenarioLoaded(1)
SM.SetScenarioName('SurfAir')
SM.SetDateTime(2004, 4, 15, 17, 0, 0)
unit = SM.GetDefaultUnit()
order = SM.GetDefaultOrder()
order.SetOrderName('Patrol')
unit.AddOrder(order)
### Alliance 2 (enemy) units
unit.className = 'Mig25'
unit.unitName = 'Bear 72'
unit.SetPosition(-5.5, 49.9, 1500) # lon, lat, alt
unit.heading = 90
unit.speed = 0.7
SM.AddUnitToAlliance(unit, 2)
unit.className = 'Mig25'
unit.unitName = 'Bear 73'
unit.SetPosition(-5.5, 49.85, 1500) # lon, lat, alt
unit.heading = 90
unit.speed = 0.7
SM.AddUnitToAlliance(unit, 2)
unit.className = 'Destroyer'
unit.unitName = 'Plate 12'
unit.SetPosition(-5.6, 49.9, 0)
unit.heading = 95
unit.speed = 1.0
SM.AddUnitToAlliance(unit, 2)
### Alliance 1 units (friendly)
unit.ClearOrders()
unit.className = 'Mig25'
unit.unitName = 'Laser 1'
unit.SetPosition(-4.4, 49.8, 1500)
unit.heading = 270
unit.speed = 0.7
SM.AddUnitToAlliance(unit, 1)
unit.className = 'Harrier GR3a'
unit.unitName = 'Striker 1'
unit.SetPosition(-4.25, 49.7, 1200)
unit.heading = 340
unit.speed = 0.5
SM.AddUnitToAlliance(unit, 1)
unit.className = 'Cruiser'
unit.unitName = 'Grizzly 1'
unit.SetPosition(-4.3, 49.7, 0)
unit.heading = 260
unit.speed = 1.0
SM.AddUnitToAlliance(unit, 1)
AddGoals(SM)
def AddGoals(SM):
# alliance 1 goals
goal_1a = SM.DestroyGoal('Plate 12')
goal_1b = SM.DestroyGoal('Bear 72')
goal_1 = SM.CompoundGoal(0) # 0 - AND, 1 - OR
goal_1.AddGoal(goal_1a)
goal_1.AddGoal(goal_1b)
SM.SetAllianceGoal(1, goal_1)
# alliance 2 goals
goal_2 = SM.DestroyGoal('Laser 1')
SM.SetAllianceGoal(2, goal_2)
# BM is BriefingManager (same as ScenarioManager for now) object
def CreateBriefing(BM):
BM.SetEventTime(0)
BM.Pause()
BM.PauseAudio()
BM.SetBriefingMode(1) # 0 - normal tactical display, 1 - briefing disp
BM.Set3DMode(0) # 0 - off, 1 - small, 2 - med, 3 - full screen
BM.ConsoleText('Briefing follows...')
BM.SetEventTime(4)
BM.ConsoleText('') # a blank line
BM.ConsoleText('Destroy the forces to the Northwest')
BM.ConsoleText('Protect your forces')
BM.ConsoleText('')
BM.SetEventTime(7)
BM.ChangeMapView(-5.5, 50.1, 4.0) # (lon, lat, lon span) in degrees
BM.SetEventTime(8)
BM.ConsoleText('')
BM.ConsoleText('Enemy consists of one Destroyer and two Mig25s')
BM.SetEventTime(9)
# text, lon, lat, duration in seconds, 0 - no effect, 1 - blend effect
BM.MapText('Approx location of OPFOR', -5.5, 49.9, 12, 1)
BM.SetEventTime(12)
BM.Set3DMode(2) # large 3D, console still visible
# unit, duration, az1, az2, el1, el2, range1, range2
BM.ConsoleText('')
BM.ConsoleText('Your cruiser is armed with SAMs and SSMs');
BM.TrackCamera('Grizzly 1', 10.0, 100.0, -100.0, 1500.0, -50.0, 150.0, 100.0)
BM.Text3D('CRUISER', 10.0, 0.7, 0.5, 24.0, 1)
BM.SetEventTime(22)
BM.ConsoleText('')
BM.ConsoleText('Use your Mig to defeat the enemy fighters')
BM.ConsoleText('The 4 key will active afterburners')
BM.FlybyCamera('Laser 1', 4.0, 80, 120, 15, 5, 50, 65)
BM.Text3D('MIG25', 4.0, 0.7, 0.5, 24.0, 1)
BM.SetEventTime(26)
BM.ConsoleText('')
BM.ConsoleText('Your Harrier provides strike support to take out the destroyer.')
BM.FlybyCamera('Striker 1', 5.0, 80, 120, 15, 5, 50, 65)
BM.Text3D('HARRIER', 5.0, 0.7, 0.5, 24.0, 1)
BM.SetEventTime(31)
BM.Set3DMode(1)
BM.ConsoleText('')
BM.ConsoleText('On to the mission, Good hunting.')
BM.SetEventTime(34)
BM.Set3DMode(1)
BM.SetBriefingMode(0) # leave briefing mode
BM.PlayAudio('tension1',0) # name, seek time from beginning of song
BM.Resume() # resumes game
--- Test1.txt DELETED ---
--- TestScenarioA.txt DELETED ---
|
|
From: <ddc...@us...> - 2003-12-31 17:34:13
|
Update of /cvsroot/gcblue/gcb_wx/src/scriptinterface
In directory sc8-pr-cvs1:/tmp/cvs-serv30143/src/scriptinterface
Modified Files:
tcScenarioInterface.cpp
Log Message:
FlybyCamera event
Index: tcScenarioInterface.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcScenarioInterface.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** tcScenarioInterface.cpp 29 Dec 2003 01:10:25 -0000 1.5
--- tcScenarioInterface.cpp 31 Dec 2003 17:34:10 -0000 1.6
***************
*** 126,129 ****
--- 126,131 ----
.def("ConsoleText",&tcScenarioInterface::ConsoleText)
.def("MapText",&tcScenarioInterface::MapText)
+ // camera and 3D viewer events
+ .def("FlybyCamera",&tcScenarioInterface::FlybyCamera)
// goal creation workaround
.def("CompoundGoal",&tcScenarioInterface::CompoundGoal)
***************
*** 416,419 ****
--- 418,442 ----
director->AddEvent(new tcMapTextEvent(mapView,text,eventTime,eventTime+duration,
lon_deg, lat_deg, effect));
+ }
+
+ void tcScenarioInterface::FlybyCamera(std::string unitName, double duration,
+ float az1_deg, float az2_deg,
+ float el1_deg, float el2_deg, float r1_m, float r2_m)
+ {
+ wxASSERT(director);
+
+ // repeated code from HookPlatform, refactor this
+ wxASSERT(simState);
+ tcGameObject* obj = simState->GetObjectByName(unitName);
+ if (obj == NULL)
+ {
+ std::cerr << "FlybyCamera: Object not found ("
+ << unitName << ")\n";
+ return;
+ }
+ director->AddEvent(new tcFlybyCameraEvent(eventTime, eventTime+duration, obj->mnID,
+ C_PIOVER180*az1_deg, C_PIOVER180*az2_deg,
+ C_PIOVER180*el1_deg, C_PIOVER180*el2_deg,
+ r1_m, r2_m));
}
|
|
From: <ddc...@us...> - 2003-12-31 17:34:13
|
Update of /cvsroot/gcblue/gcb_wx/src/sim
In directory sc8-pr-cvs1:/tmp/cvs-serv30143/src/sim
Modified Files:
tcDirector.cpp tcDirectorEvent.cpp
Log Message:
FlybyCamera event
Index: tcDirector.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcDirector.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tcDirector.cpp 31 Dec 2003 00:23:23 -0000 1.3
--- tcDirector.cpp 31 Dec 2003 17:34:10 -0000 1.4
***************
*** 114,117 ****
--- 114,118 ----
tcConsoleTextEvent::AttachConsole(console);
tcDirectorEvent::AttachEventHandler(win);
+ tcCameraEvent::AttachViewer(viewer);
events.clear();
startTime = 0;
Index: tcDirectorEvent.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcDirectorEvent.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tcDirectorEvent.cpp 22 Dec 2003 02:32:37 -0000 1.2
--- tcDirectorEvent.cpp 31 Dec 2003 17:34:10 -0000 1.3
***************
*** 34,37 ****
--- 34,39 ----
#include "tcSound.h"
#include "tcConsole.h"
+ #include "tc3DViewer.h"
+ #include "math_constants.h"
using MapView::tcMapView;
***************
*** 78,120 ****
- /********** tcCameraEvent ****************/
-
- Producer::Vec3 tcCameraEvent::GetPosition(double lon_zero, double lat_zero, double t)
- {
- return cameraStartPosition;
- }
-
- void tcCameraEvent::SetDatum(double lon_rad, double lat_rad)
- {
- longitudeDatum = lon_rad;
- latitudeDatum = lat_rad;
- }
-
- void tcCameraEvent::SetEndPosition(float x, float y, float z)
- {
- cameraEndPosition = Producer::Vec3(x,y,z);
- }
-
- void tcCameraEvent::SetTargetPosition(float x, float y, float z)
- {
- cameraTargetPosition = Producer::Vec3(x,y,z);
- }
-
- void tcCameraEvent::SetStartPosition(float x, float y, float z)
- {
- cameraStartPosition = Producer::Vec3(x,y,z);
- }
-
- void tcCameraEvent::Update(double t)
- {
- }
-
- tcCameraEvent::tcCameraEvent()
- {
- }
- tcCameraEvent::~tcCameraEvent()
- {
- }
--- 80,84 ----
***************
*** 344,346 ****
--- 308,377 ----
+ /********** tcCameraEvent ****************/
+
+ tc3DViewer* tcCameraEvent::viewer = NULL;
+
+ void tcCameraEvent::Update(double t)
+ {
+ if (t < eventStart) return;
+ if (triggered) return;
+
+ viewer->SetCameraMode(lookAtTarget, moveWithTarget);
+ viewer->SetHookID(targetID);
+
+ triggered = true;
+ }
+ tcCameraEvent::tcCameraEvent(double tStart, double tStop)
+ : tcDirectorEvent(tStart, tStop)
+ {
+ }
+
+ tcCameraEvent::~tcCameraEvent()
+ {
+ }
+
+ /********** tcFlybyCameraEvent *****************/
+ void tcFlybyCameraEvent::Update(double t)
+ {
+ tcCameraEvent::Update(t);
+
+ if (!triggered) return;
+ if (t > eventStop) return;
+
+ float k = (eventStart == eventStop) ? 0 : (t - eventStart)/(eventStop - eventStart);
+ float daz = stopAz - startAz;
+ if (daz < -C_PI) daz += C_TWOPI;
+ else if (daz > C_PI) daz -= C_TWOPI;
+ float az = startAz + k*daz;
+
+ float del = stopEl - startEl;
+ if (del < -C_PI) del += C_TWOPI;
+ else if (del > C_PI) del -= C_TWOPI;
+ float el = startEl + k*del;
+
+ float range = startRange + k*(stopRange - startRange);
+
+ viewer->SetMoveWithVector(az, el, range);
+ }
+
+ tcFlybyCameraEvent::tcFlybyCameraEvent(double tStart, double tStop, long targID,
+ float az1, float az2, float el1, float el2,
+ float r1, float r2)
+ : tcCameraEvent(tStart,tStop)
+ {
+ targetID = targID;
+ moveWithTarget = true;
+ lookAtTarget = true;
+
+ startAz = az1;
+ startEl = el1;
+ startRange = r1;
+ stopAz = az2;
+ stopEl = el2;
+ stopRange = r2;
+ }
+
+ tcFlybyCameraEvent::~tcFlybyCameraEvent()
+ {
+ }
\ No newline at end of file
|
|
From: <ddc...@us...> - 2003-12-31 17:34:13
|
Update of /cvsroot/gcblue/gcb_wx/include/sim
In directory sc8-pr-cvs1:/tmp/cvs-serv30143/include/sim
Modified Files:
tcDirectorEvent.h
Log Message:
FlybyCamera event
Index: tcDirectorEvent.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcDirectorEvent.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tcDirectorEvent.h 22 Dec 2003 02:32:37 -0000 1.2
--- tcDirectorEvent.h 31 Dec 2003 17:34:10 -0000 1.3
***************
*** 40,43 ****
--- 40,44 ----
class tcSound;
class tcConsole;
+ class tc3DViewer;
using MapView::tcMapView;
***************
*** 81,109 ****
-
- /**
- * An event that manipulates the camera in the 3D viewer
- */
- class tcCameraEvent : public tcDirectorEvent
- {
- public:
- double latitudeDatum; ///< radian reference for fixed camera
- double longitudeDatum; ///< radian reference for fixed camera
- Producer::Vec3 cameraStartPosition; ///< cartesian coord offset from datum, meters
- Producer::Vec3 cameraEndPosition; ///< cartesian coord offset from datum, meters
- Producer::Vec3 cameraTargetPosition; ///< cartesian coord offset from datum, meters
-
- Producer::Vec3 GetPosition(double lon_zero, double lat_zero, double t);
- void SetDatum(double lon_rad, double lat_rad);
- void SetEndPosition(float x, float y, float z);
- void SetTargetPosition(float x, float y, float z);
- void SetStartPosition(float x, float y, float z);
- virtual void Update(double t);
- tcCameraEvent();
- virtual ~tcCameraEvent();
- };
-
-
-
/**
* Displays text on map window, updates text properties
--- 82,85 ----
***************
*** 209,212 ****
--- 185,223 ----
+
+ /**
+ * An event that manipulates the camera in the 3D viewer
+ */
+ class tcCameraEvent : public tcDirectorEvent
+ {
+ public:
+ static tc3DViewer *viewer;
+ long targetID;
+ bool moveWithTarget;
+ bool lookAtTarget;
+
+ static void AttachViewer(tc3DViewer *v) {viewer = v;}
+ virtual void Update(double t);
+
+ tcCameraEvent(double tStart, double tStop);
+ virtual ~tcCameraEvent();
+ };
+
+ class tcFlybyCameraEvent : public tcCameraEvent
+ {
+ public:
+ float startAz;
+ float startEl;
+ float startRange;
+ float stopAz;
+ float stopEl;
+ float stopRange;
+
+ virtual void Update(double t);
+
+ tcFlybyCameraEvent(double tStart, double tStop, long targID,
+ float az1, float az2, float el1, float el2, float r1, float r2);
+ virtual ~tcFlybyCameraEvent();
+ };
|
|
From: <ddc...@us...> - 2003-12-31 17:34:13
|
Update of /cvsroot/gcblue/gcb_wx/include/scriptinterface
In directory sc8-pr-cvs1:/tmp/cvs-serv30143/include/scriptinterface
Modified Files:
tcScenarioInterface.h
Log Message:
FlybyCamera event
Index: tcScenarioInterface.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/scriptinterface/tcScenarioInterface.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** tcScenarioInterface.h 29 Dec 2003 01:10:25 -0000 1.4
--- tcScenarioInterface.h 31 Dec 2003 17:34:10 -0000 1.5
***************
*** 109,112 ****
--- 109,116 ----
void MapText(std::string text, double lon_deg, double lat_deg, double duration, int effect);
+ // camera events
+ void FlybyCamera(std::string unitName, double duration, float az1_deg, float az2_deg,
+ float el1_deg, float el2_deg, float r1_m, float r2_m);
+
// goal class creation methods (cannot find a way to do directly)
tcCompoundGoal CompoundGoal(int type);
|
|
From: <ddc...@us...> - 2003-12-31 00:23:26
|
Update of /cvsroot/gcblue/gcb_wx/src/sim
In directory sc8-pr-cvs1:/tmp/cvs-serv31613/src/sim
Modified Files:
Game.cpp tc3DViewer.cpp tcDirector.cpp
Log Message:
More camera views
Index: Game.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/Game.cpp,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** Game.cpp 29 Dec 2003 01:10:25 -0000 1.45
--- Game.cpp 31 Dec 2003 00:23:23 -0000 1.46
***************
*** 540,544 ****
wxASSERT(tacticalMap);
wxASSERT(briefingConsoleLeft);
! director = new tcDirector(tacticalMap, &mcSound, briefingConsoleLeft, this);
director->SetStartTime(0);
director->InitTest(); // load test event sequence
--- 540,544 ----
wxASSERT(tacticalMap);
wxASSERT(briefingConsoleLeft);
! director = new tcDirector(viewer, tacticalMap, &mcSound, briefingConsoleLeft, this);
director->SetStartTime(0);
director->InitTest(); // load test event sequence
***************
*** 872,875 ****
--- 872,876 ----
size3D = MODE3D_FULL;
}
+ Update3DSize();
}
Index: tc3DViewer.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tc3DViewer.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** tc3DViewer.cpp 15 Dec 2003 04:19:59 -0000 1.21
--- tc3DViewer.cpp 31 Dec 2003 00:23:23 -0000 1.22
***************
*** 216,219 ****
--- 216,228 ----
}
+ /**
+ *
+ */
+ void tc3DViewer::SetCameraMode(bool lookAt, bool moveWith)
+ {
+ lookAtTarget = lookAt;
+ moveWithTarget = moveWith;
+ }
+
void tc3DViewer::SetGameTime(double t)
{
***************
*** 223,226 ****
--- 232,258 ----
/**
+ * Sets position of camera for non-moveWithCamera modes.
+ */
+ void tc3DViewer::SetGeoPosition(double lon_rad, double lat_rad, float alt_m)
+ {
+ cameraLongitude = lon_rad;
+ cameraLatitude = lat_rad;
+ cameraAltitude = alt_m;
+ }
+
+ void tc3DViewer::SetLook(float az, float el)
+ {
+ cameraLookAz = az;
+ cameraLookEl = el;
+ }
+
+ void tc3DViewer::SetMoveWithVector(float az, float el, float range)
+ {
+ cameraAz = az;
+ cameraEl = el;
+ cameraRange = range;
+ }
+
+ /**
* Set the origin (0,0) of 3D world coordinates and
* update lonToGridX and gridXToLon scale factors which
***************
*** 432,445 ****
tcGameObject *obj = simState->GetObject(hookID);
if (!obj) return;
! cameraTarget = GetObjectPosition(obj);
! float camx = cosf(cameraEl)*sinf(cameraAz);
! float camy = cosf(cameraEl)*cosf(cameraAz);
! float camz = sinf(cameraEl);
!
! Producer::Vec3 camOffset = Producer::Vec3(camx,camy,camz)*cameraRange;
! Producer::Matrix m = Producer::Matrix::translate(camOffset);
- cameraPosition = cameraTarget*m;
camera->setViewByLookat(cameraPosition, cameraTarget, Producer::Vec3(0,0,1));
--- 464,501 ----
tcGameObject *obj = simState->GetObject(hookID);
if (!obj) return;
+
+ Producer::Vec3 targetPosition;
+ if (lookAtTarget || moveWithTarget)
+ {
+ targetPosition = GetObjectPosition(obj);
+ }
+ if (moveWithTarget)
+ {
+ float camx = cosf(cameraEl)*sinf(cameraAz);
+ float camy = cosf(cameraEl)*cosf(cameraAz);
+ float camz = sinf(cameraEl);
+ Producer::Vec3 camOffset = Producer::Vec3(camx,camy,camz)*cameraRange;
+ Producer::Matrix m = Producer::Matrix::translate(camOffset);
+ cameraPosition = targetPosition*m;
+ }
+ else
+ {
+ cameraPosition = GetCameraPosition();
+ }
! if (lookAtTarget)
! {
! cameraTarget = targetPosition;
! }
! else
! {
! float camx = cosf(cameraLookEl)*sinf(cameraLookAz);
! float camy = cosf(cameraLookEl)*cosf(cameraLookAz);
! float camz = sinf(cameraLookEl);
! Producer::Vec3 lookOffset = Producer::Vec3(camx,camy,camz);
! Producer::Matrix m = Producer::Matrix::translate(lookOffset);
! cameraTarget = cameraPosition*m;
! }
camera->setViewByLookat(cameraPosition, cameraTarget, Producer::Vec3(0,0,1));
***************
*** 538,541 ****
--- 594,609 ----
/**
+ * Converts lon/lat coords to world coords.
+ * @return camera position in world coordinates.
+ */
+ Producer::Vec3 tc3DViewer::GetCameraPosition()
+ {
+ float x = LonToX(cameraLongitude);
+ float y = LatToY(cameraLatitude);
+ float z = cameraAltitude;
+ return Producer::Vec3(x,y,z);
+ }
+
+ /**
* @return object position in world coordinates.
*/
***************
*** 772,775 ****
--- 840,850 ----
viewWireframe = false;
useRelativeChildPos = true;
+ moveWithTarget = true;
+ lookAtTarget = true;
+ cameraLongitude = 0;
+ cameraLatitude = 0;
+ cameraAltitude = 100.0f;
+ cameraLookAz = 0;
+ cameraLookEl = 0;
Index: tcDirector.cpp
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcDirector.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** tcDirector.cpp 22 Dec 2003 02:32:37 -0000 1.2
--- tcDirector.cpp 31 Dec 2003 00:23:23 -0000 1.3
***************
*** 107,113 ****
}
! tcDirector::tcDirector(tcMapView *mv, tcSound *soundInterface, tcConsole *console
, wxWindow *win)
! : mapView(mv)
{
tcSoundEvent::AttachSound(soundInterface);
--- 107,113 ----
}
! tcDirector::tcDirector(tc3DViewer *view3D, tcMapView *mv, tcSound *soundInterface, tcConsole *console
, wxWindow *win)
! : mapView(mv), viewer(view3D)
{
tcSoundEvent::AttachSound(soundInterface);
|
|
From: <ddc...@us...> - 2003-12-31 00:23:26
|
Update of /cvsroot/gcblue/gcb_wx/include/sim
In directory sc8-pr-cvs1:/tmp/cvs-serv31613/include/sim
Modified Files:
tc3DViewer.h tcDirector.h
Log Message:
More camera views
Index: tc3DViewer.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tc3DViewer.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** tc3DViewer.h 11 Dec 2003 01:40:57 -0000 1.15
--- tc3DViewer.h 31 Dec 2003 00:23:22 -0000 1.16
***************
*** 103,112 ****
--- 103,117 ----
void DirtyAll();
void Frame();
+ Producer::Vec3 GetCameraPosition();
Producer::Vec3 GetObjectPosition(tcGameObject *obj);
bool IsActive() {return isActive;}
void LoadModel(tcGameObject *obj);
void SetActive(bool b) {isActive = b;wxWindow::Enable(b);}
+ void SetCameraMode(bool lookAt, bool moveWith);
void SetGameTime(double t);
+ void SetGeoPosition(double lon_rad, double lat_rad, float alt_m);
void SetHookID(long id) {hookID = id;}
+ void SetLook(float az, float el);
+ void SetMoveWithVector(float az, float el, float range);
void SetText(const char *s);
void ToggleFog();
***************
*** 142,150 ****
// camera parameters
Producer::Vec3 cameraPosition; ///< current position of camera
! Producer::Vec3 cameraTarget; ///< point camera is looking at
! float cameraAz; ///< camera azimuth
! float cameraEl; ///< camera elevation
! float cameraRange; ///< range of camera
wxPoint clickPoint; ///< anchor point for mouse look
float azStart; ///< camera az start for mouse look
--- 147,162 ----
// camera parameters
+ bool lookAtTarget; ///< true to make camera point at target
+ bool moveWithTarget; ///< true to make camera move with target
+ double cameraLongitude; ///< lon,lat,alt pos of camera for non moveWith modes
+ double cameraLatitude; ///< radians
+ float cameraAltitude; ///< meters
Producer::Vec3 cameraPosition; ///< current position of camera
! Producer::Vec3 cameraTarget; ///< point camera is looking at for lookAt modes
! float cameraAz; ///< camera azimuth relative to target for moveWith modes
! float cameraEl; ///< camera elevation relative to target for moveWith modes
! float cameraRange; ///< range of camera relative to target for moveWith modes
! float cameraLookAz; ///< look az for non-lookat modes
! float cameraLookEl; ///< look el for non-lookat modes
wxPoint clickPoint; ///< anchor point for mouse look
float azStart; ///< camera az start for mouse look
Index: tcDirector.h
===================================================================
RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcDirector.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** tcDirector.h 29 Dec 2003 01:10:25 -0000 1.3
--- tcDirector.h 31 Dec 2003 00:23:22 -0000 1.4
***************
*** 33,36 ****
--- 33,37 ----
class tcSound;
class tcConsole;
+ class tc3DViewer;
namespace MapView
***************
*** 62,69 ****
void Update(double t);
! tcDirector(tcMapView *mv, tcSound *soundInterface, tcConsole *console, wxWindow *win);
~tcDirector();
private:
tcMapView *mapView; ///< tcMapView object for map events (only one supported currently)
};
--- 63,71 ----
void Update(double t);
! tcDirector(tc3DViewer *view3D, tcMapView *mv, tcSound *soundInterface, tcConsole *console, wxWindow *win);
~tcDirector();
private:
tcMapView *mapView; ///< tcMapView object for map events (only one supported currently)
+ tc3DViewer *viewer; ////< tc3DViewer object for camera events
};
|