|
From: <joh...@ie...> - 2000-04-06 23:17:58
|
Patch: vhclmaps-000329-johnston-016
For: vhclmaps-0.7.4
Author: joh...@us...
Subject: composite vehicle rotation and utmzone func
Requires:
This is an intermediate patch to vhclmaps-0.7.4. To apply, cd to the
top-level directory of the vhclmaps source tree (the directory with src
and config subdirs), and apply like this:
patch -p0 <ThisFile
Summary of Changes:
- ability to rotate composite vehicles in a vhclserv or derivative program
- utmzone func added to projserv, uses MapProjection::utmzone.
Index: MapUnidraw/mapscripts.c
diff -c MapUnidraw/mapscripts.c:1.3 MapUnidraw/mapscripts.c:1.4
*** MapUnidraw/mapscripts.c:1.3 Tue Mar 21 12:03:12 2000
--- src/MapUnidraw/mapscripts.c Wed Mar 29 23:08:38 2000
***************
*** 720,725 ****
--- 720,726 ----
return MAPFCLASS_RAW == id || MapFClassScript::IsA(id);
}
+ #if 0
static int utmzone(float lon) {
if (lon > -180.0 && lon < -174.0)
return 1;
***************
*** 844,849 ****
--- 845,851 ----
else
return 0;
}
+ #endif
boolean MapFClassRawScript::Definition (ostream& out) {
Iterator i;
***************
*** 885,891 ****
// char ln0[80];
// sprintf(ln0, "%f", x1);
! utm_zone = utmzone(x1+0.1);
}
// out << " :lon0 " << ln0;
out << "\n :proj " << "utm";
--- 887,893 ----
// char ln0[80];
// sprintf(ln0, "%f", x1);
! utm_zone = MapProjection::utmzone(x1+0.1);
}
// out << " :lon0 " << ln0;
out << "\n :proj " << "utm";
Index: mapserv/README
diff -c mapserv/README:1.1 mapserv/README:1.2
*** mapserv/README:1.1 Mon Aug 2 13:53:23 1999
--- src/mapserv/README Wed Mar 29 23:08:40 2000
***************
*** 75,80 ****
--- 75,84 ----
exportgrtr(tr_str) -- default transformer string for feature classes
printgr(fclass) -- print drawtool format to stdout
+ UTILITY COMMANDS
+
+ int=utmzone(longitude) -- return utm zone for a given longitude
+
OTHER COMMANDS
Index: LosServ/losfunc.c
diff -c LosServ/losfunc.c:1.6 LosServ/losfunc.c:1.7
*** LosServ/losfunc.c:1.6 Fri Mar 24 23:21:01 2000
--- src/LosServ/losfunc.c Wed Mar 29 23:08:44 2000
***************
*** 435,440 ****
--- 435,441 ----
/*****************************************************************************/
+ #if 0
static int utmzone(float lon) {
if (lon > -180.0 && lon < -174.0)
return 1;
***************
*** 559,564 ****
--- 560,566 ----
else
return 0;
}
+ #endif
inline double dmin(double a, double b) { return a < b ? a : b; } \
inline double dmax(double a, double b) { return a > b ? a : b; }
***************
*** 655,661 ****
AttributeList* alist = mfccomp->GetAttributeList();
alist->add_attr("proj", new AttributeValue("utm"));
alist->add_attr("ellps", new AttributeValue("WGS84"));
! int zone = utmzone(xmin);
mapfc->set_extent(xmin, ymin, xmax, ymax, zone);
if (zone) {
AttributeValue* zoneval = new AttributeValue(zone, AttributeValue::IntType);
--- 657,663 ----
AttributeList* alist = mfccomp->GetAttributeList();
alist->add_attr("proj", new AttributeValue("utm"));
alist->add_attr("ellps", new AttributeValue("WGS84"));
! int zone = MapProjection::utmzone(xmin);
mapfc->set_extent(xmin, ymin, xmax, ymax, zone);
if (zone) {
AttributeValue* zoneval = new AttributeValue(zone, AttributeValue::IntType);
Index: ProjServ/projfunc.c
diff -c ProjServ/projfunc.c:1.4 ProjServ/projfunc.c:1.5
*** ProjServ/projfunc.c:1.4 Fri Mar 24 23:21:03 2000
--- src/ProjServ/projfunc.c Wed Mar 29 23:08:45 2000
***************
*** 1,4 ****
--- 1,5 ----
/*
+ * Copyright (c) 2000 IET Inc.
* Copyright (c) 1998-1999 Vectaport Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
***************
*** 48,53 ****
--- 49,55 ----
#include <Map/mapfeature.h>
#include <Map/mapprim.h>
+ #include <Map/mapproject.h>
#include <TopoFace/fgeomobjs.h>
#include <TopoFace/topoface.h>
***************
*** 65,70 ****
--- 67,74 ----
#include <ComUtil/comutil.h>
+ /*****************************************************************************/
+
LoadVpfFCFunc::LoadVpfFCFunc(ComTerp* comterp) : ComFunc(comterp) {
_tileid_symid = symbol_add("tileid");
}
***************
*** 135,140 ****
--- 139,146 ----
}
}
+ /*****************************************************************************/
+
VpfTileIdsByGeoFunc::VpfTileIdsByGeoFunc(ComTerp* comterp) : ComFunc(comterp) {
}
***************
*** 179,184 ****
--- 185,192 ----
push_stack(result);
}
+ /*****************************************************************************/
+
Load100KDLGFCFunc::Load100KDLGFCFunc(ComTerp* comterp) : ComFunc(comterp) {
}
***************
*** 215,220 ****
--- 223,230 ----
push_stack(result);
}
+ /*****************************************************************************/
+
GraticuleFCFunc::GraticuleFCFunc(ComTerp* comterp) : ComFunc(comterp) {
_startlon_symid = symbol_add("startlon");
_endlon_symid = symbol_add("endlon");
***************
*** 305,307 ****
--- 315,331 ----
result.object_compview(true);
push_stack(result);
}
+ /*****************************************************************************/
+
+ UtmZoneFunc::UtmZoneFunc(ComTerp* comterp) : ComFunc(comterp) {
+ }
+
+ void UtmZoneFunc::execute() {
+ ComValue longv(stack_arg(0));
+ reset_stack();
+ ComValue retval(MapProjection::utmzone(longv.float_val()));
+ push_stack(retval);
+ }
+
+
+
Index: ProjServ/projfunc.h
diff -c ProjServ/projfunc.h:1.1 ProjServ/projfunc.h:1.2
*** ProjServ/projfunc.h:1.1 Mon Aug 2 13:53:39 1999
--- src/ProjServ/projfunc.h Wed Mar 29 23:08:46 2000
***************
*** 1,4 ****
--- 1,5 ----
/*
+ * Copyright (c) 2000 IET Inc.
* Copyright (c) 1998 Vectaport Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
***************
*** 63,68 ****
--- 64,77 ----
protected:
int _startlon_symid, _endlon_symid, _startlat_symid, _endlat_symid,
_spacing_symid, _resolution_symid;
+ };
+
+ class UtmZoneFunc : public ComFunc {
+ public:
+ UtmZoneFunc(ComTerp*);
+ virtual void execute();
+ virtual const char* docstring() {
+ return "int=%s(longitude) -- return utm zone for given longitude"; }
};
#endif
Index: ProjServ/projhandler.c
diff -c ProjServ/projhandler.c:1.2 ProjServ/projhandler.c:1.3
*** ProjServ/projhandler.c:1.2 Sat Mar 18 02:24:14 2000
--- src/ProjServ/projhandler.c Wed Mar 29 23:08:46 2000
***************
*** 80,87 ****
--- 80,89 ----
comterp->add_command("load100kdlgfc", new Load100KDLGFCFunc(comterp));
comterp->add_command("vpftileidsbygeo", new VpfTileIdsByGeoFunc(comterp));
comterp->add_command("graticulefc", new GraticuleFCFunc(comterp));
+ comterp->add_command("utmzone", new UtmZoneFunc(comterp));
comterp->add_command("points", new MapPointsFunc(comterp));
+
}
Index: projserv/README
diff -c projserv/README:1.1 projserv/README:1.2
*** projserv/README:1.1 Mon Aug 2 13:53:41 1999
--- src/projserv/README Wed Mar 29 23:08:47 2000
***************
*** 33,38 ****
--- 33,40 ----
fclass=load100kdlgfc(dbpathstr libnamestr covnamestr fcnamestr) -- import a 100K DLG format feature class
fclass=graticulefc(:startlon -180.0 :endlon 180.0 :startlat -90.0 :endlat :90.0 :spacing 15.0 :resolution 5.0) -- create a graticule feature class
intlist=vpftileidsbygeo(dbpathstr libname sw_lon sw_lat ne_lon ne_lat) -- return ids of VPF tiles containing a geo rectangle
+ int=utmzone(longitude) -- return utm zone for a given longitude
+
SEE ALSO
Index: Vehicle/compositevhcl.c
diff -c Vehicle/compositevhcl.c:1.2 Vehicle/compositevhcl.c:1.3
*** Vehicle/compositevhcl.c:1.2 Fri Mar 24 23:21:06 2000
--- src/Vehicle/compositevhcl.c Wed Mar 29 23:08:49 2000
***************
*** 34,39 ****
--- 34,40 ----
for (int i=0; i<nvhcls; i++) {
if (vhcls[i]) {
_vhcls[cnt] = vhcls[i];
+ _vhcls[cnt]->attach(this);
cx += _vhcls[cnt]->xloc();
cy += _vhcls[cnt]->yloc();
cz += _vhcls[cnt]->zloc();
***************
*** 44,49 ****
--- 45,51 ----
_loc[0] = cx/_nvhcls;
_loc[1] = cy/_nvhcls;
_loc[2] = cz/_nvhcls;
+ _defer_composite_update = false;
}
CompositeVehicle::~CompositeVehicle() {
***************
*** 74,270 ****
}
void CompositeVehicle::update(Observable* obs) {
! recompute();
! notify();
}
void CompositeVehicle::move(float dx, float dy) {
if (dx || dy) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->move(dx, dy);
}
recompute();
}
}
void CompositeVehicle::move(float dx, float dy, float dz) {
if (dx || dy || dz) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->move(dx, dy, dz);
}
! recompute();
}
}
void CompositeVehicle::move(float* deltas, int ndeltas) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->move(deltas, ndeltas);
}
! recompute();
}
void CompositeVehicle::jump(float x, float y) {
if (x || y) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jump(x, y);
}
! recompute();
}
}
void CompositeVehicle::jump(float x, float y, float z) {
if (x || y || z) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jump(x, y, z);
}
! recompute();
}
}
void CompositeVehicle::jump(float* loc, int n) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jump(loc, n);
}
! recompute();
}
void CompositeVehicle::turn(float dx, float dy) {
if (dx || dy) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turn(dx, dy);
}
! recompute();
}
}
void CompositeVehicle::turn(float dx, float dy, float dz) {
if (dx || dy || dz) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turn(dx, dy, dz);
}
! recompute();
}
}
void CompositeVehicle::turn(float* deltas, int ndeltas) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turn(deltas, ndeltas);
}
! recompute();
}
void CompositeVehicle::turnto(float x, float y) {
if (x || y) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turnto(x, y);
}
! recompute();
}
}
void CompositeVehicle::turnto(float x, float y, float z) {
if (x || y || z) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turnto(x, y, z);
}
! recompute();
}
}
void CompositeVehicle::turnto(float* dir, int n) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turnto(dir, n);
}
! recompute();
}
void CompositeVehicle::jumpturn(float x, float y, float z,
float dx, float dy) {
if (dx || dy) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jumpturn(x, y, z, dx, dy);
}
! recompute();
}
}
void CompositeVehicle::jumpturn(float x, float y, float z,
float dx, float dy, float dz) {
if (dx || dy || dz) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jumpturn(x, y, z, dx, dy);
}
! recompute();
}
}
void CompositeVehicle::jumpturn(float* loc, float* dir, int n) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jumpturn(loc, dir, n);
}
! recompute();
}
void CompositeVehicle::forward2d(float dist) {
if (dist) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->forward2d(dist);
}
! recompute();
}
}
void CompositeVehicle::backward2d(float dist) {
if (dist) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->backward2d(dist);
}
! recompute();
}
}
void CompositeVehicle::rotate2d(float ang) {
if (ang) {
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
! Vehicle* subv = subvhcl(i);
! if (subv) subv->rotate2d(ang);
}
! recompute();
}
}
--- 76,321 ----
}
void CompositeVehicle::update(Observable* obs) {
! if (!_defer_composite_update) {
! recompute();
! notify();
! }
}
void CompositeVehicle::move(float dx, float dy) {
if (dx || dy) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->move(dx, dy);
}
+ defer_composite_update()=false;
recompute();
+ notify();
}
}
void CompositeVehicle::move(float dx, float dy, float dz) {
if (dx || dy || dz) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->move(dx, dy, dz);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::move(float* deltas, int ndeltas) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->move(deltas, ndeltas);
}
! defer_composite_update()=false;
! recompute();notify();
}
void CompositeVehicle::jump(float x, float y) {
if (x || y) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jump(x, y);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::jump(float x, float y, float z) {
if (x || y || z) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jump(x, y, z);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::jump(float* loc, int n) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jump(loc, n);
}
! defer_composite_update()=false;
! recompute();notify();
}
void CompositeVehicle::turn(float dx, float dy) {
if (dx || dy) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turn(dx, dy);
}
! defer_composite_update();
! recompute();notify();
}
}
void CompositeVehicle::turn(float dx, float dy, float dz) {
if (dx || dy || dz) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turn(dx, dy, dz);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::turn(float* deltas, int ndeltas) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turn(deltas, ndeltas);
}
! defer_composite_update()=false;
! recompute();notify();
}
void CompositeVehicle::turnto(float x, float y) {
if (x || y) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turnto(x, y);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::turnto(float x, float y, float z) {
if (x || y || z) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turnto(x, y, z);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::turnto(float* dir, int n) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->turnto(dir, n);
}
! defer_composite_update()=false;
! recompute();notify();
}
void CompositeVehicle::jumpturn(float x, float y, float z,
float dx, float dy) {
if (dx || dy) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jumpturn(x, y, z, dx, dy);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::jumpturn(float x, float y, float z,
float dx, float dy, float dz) {
if (dx || dy || dz) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jumpturn(x, y, z, dx, dy);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::jumpturn(float* loc, float* dir, int n) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->jumpturn(loc, dir, n);
}
! defer_composite_update()=false;
! recompute();notify();
}
void CompositeVehicle::forward2d(float dist) {
if (dist) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->forward2d(dist);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::backward2d(float dist) {
if (dist) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
Vehicle* subv = subvhcl(i);
if (subv) subv->backward2d(dist);
}
! defer_composite_update()=false;
! recompute();notify();
}
}
void CompositeVehicle::rotate2d(float ang) {
if (ang) {
+ defer_composite_update()=true;
int nvhcls = nsubvhcls();
for(int i=0; i<nvhcls; i++) {
! Vehicle* vhcl = subvhcl(i);
! float cx = xloc();
! float cy = yloc();
! vec2 vec(vhcl->xloc()-cx, vhcl->yloc()-cy);
! float veclen=vec.length();
! if (veclen) vec.normalize();
! mat3 mat = rotation2D(vec, ang);
! vec2 newvec = vec * mat;
! if(newvec.length()!=1.0) newvec.normalize();
! newvec *= veclen;
! vhcl->xloc() = newvec[0]+cx;
! vhcl->yloc() = newvec[1]+cy;
}
! defer_composite_update()=false;
! recompute();notify();
}
}
Index: Vehicle/compositevhcl.h
diff -c Vehicle/compositevhcl.h:1.2 Vehicle/compositevhcl.h:1.3
*** Vehicle/compositevhcl.h:1.2 Fri Mar 24 23:21:06 2000
--- src/Vehicle/compositevhcl.h Wed Mar 29 23:08:49 2000
***************
*** 59,67 ****
--- 59,70 ----
virtual void backward2d(float dist =1.0);
virtual void rotate2d(float ang);
+ boolean& defer_composite_update() { return _defer_composite_update; }
+
protected:
Vehicle** _vhcls;
int _nvhcls;
+ boolean _defer_composite_update;
};
#endif
Index: VhclServ/vhclfunc.h
diff -c VhclServ/vhclfunc.h:1.3 VhclServ/vhclfunc.h:1.4
*** VhclServ/vhclfunc.h:1.3 Fri Mar 24 23:21:09 2000
--- src/VhclServ/vhclfunc.h Wed Mar 29 23:08:51 2000
***************
*** 1,4 ****
--- 1,5 ----
/*
+ * Copyright (c) 2000 IET Inc.
* Copyright (c) 1997-1999 Vectaport Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and
Index: VhclUnidraw/vhcleditor.c
diff -c VhclUnidraw/vhcleditor.c:1.1 VhclUnidraw/vhcleditor.c:1.2
*** VhclUnidraw/vhcleditor.c:1.1 Mon Aug 2 13:53:53 1999
--- src/VhclUnidraw/vhcleditor.c Wed Mar 29 23:08:52 2000
***************
*** 1,4 ****
--- 1,5 ----
/*
+ * Copyright 2000 IET Inc.
* Copyright 1998 Vectaport Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
***************
*** 31,36 ****
--- 32,39 ----
#include <Unidraw/iterator.h>
#include <Unidraw/unidraw.h>
#include <ComTerp/comterpserv.h>
+ #include <Attribute/attribute.h>
+ #include <Attribute/attrlist.h>
/*****************************************************************************/
***************
*** 68,73 ****
--- 71,87 ----
void VhclEditor::Init (OverlayComp* comp, const char* name) {
MapEditor::Init(comp, name);
}
+
+ void VhclEditor::InitCommands() {
+ UtmEditor::InitCommands();
+ Attribute* mag = ((OverlayComp*)GetGraphicComp())->GetAttributeList()->GetAttr("initmag");
+ if (mag) {
+ unidraw->Update(); // need this to make SetMag/MapCenter work properly
+ GetViewer()->SetMagnification(mag->Value()->float_val());
+ }
+ }
+
+
void VhclEditor::AddCommands(ComTerp* comterp) {
UtmEditor::AddCommands(comterp);
Index: VhclUnidraw/vhcleditor.h
diff -c VhclUnidraw/vhcleditor.h:1.2 VhclUnidraw/vhcleditor.h:1.3
*** VhclUnidraw/vhcleditor.h:1.2 Mon Feb 28 17:28:05 2000
--- src/VhclUnidraw/vhcleditor.h Wed Mar 29 23:08:52 2000
***************
*** 1,4 ****
--- 1,5 ----
/*
+ * Copyright 2000 IET Inc.
* Copyright 1998 Vectaport Inc.
*
* Permission to use, copy, modify, distribute, and sell this software and its
***************
*** 35,40 ****
--- 36,42 ----
VhclEditor(const char* file, OverlayKit* = VhclKit::Instance());
void Init(OverlayComp* = nil, const char* = "VhclEditor");
virtual void AddCommands(ComTerp*);
+ virtual void InitCommands();
FrameTimeState*& simtimestate() { return _simtimestate; }
*** /dev/null Wed Mar 29 23:08:56 PST 2000
--- patches/vhclmaps-000329-johnston-016
*************** patches/vhclmaps-000329-johnston-016
*** 0 ****
--- 1 ----
+ vhclmaps-000329-johnston-016
|