电子海图引擎源码


在Linux上开发的S57电子海图引擎源码,提供一个命令行工具查看S57文件内容,和一个Qt4应用程序,这次把所有源码都发上来了,功能介绍参见http://download.csdn.net/download/ljq1000/4373164
资源截图
代码片段和文件信息
#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 

#include “../tools/debug_alloc.h“
#include “../tools/String.h“
#include “../tools/Log.h“
#include “i18n/i18n.h“
#include “S52defs.h“
#include “h_chartedobject.h“
#include “ir_datasets.h“
#include “enc_chart.h“
#include “chartcanvas.h“

using namespace Geo;
using namespace FBG;
using namespace ENC;
using namespace MyTools;

namespace ENC
{
typedef void (*DrawHandler)(ChartCanvas * int flags FPainter *);

class ChartCanvasItem
{
public:
bool _enabled;
DrawHandler _h;

ChartCanvasItem() {}
ChartCanvasItem(bool enabled DrawHandler h)
: _enabled(enabled) _h(h) {}
};

class TextItem
{
public:
struct list_head _link;
FRect _r; // the top-left point of the rect is after rotation
String _s;
const FColor *_pcol;
int _fontSize;
};
#define TEXT_ITEM(linkptr) (reinterpret_cast(linkptr))

class DepthItem
{
public:
struct list_head _link;
IrFeatureContent _fea;
int _depth;

DepthItem(const IrFeatureContent &fea int d struct list_head *after)
: _link() _fea(fea) _depth(d)
{
list_add(&_link after);
}
};
#define DEPTH_ITEM(phead) (reinterpret_cast(phead))

class BeaconBuoyItem
{
public:
struct list_head _link;
FPoint _vp;
int _rn;

BeaconBuoyItem(const FPoint &vp int rn struct list_head *after)
{
_vp = vp;
_rn = rn;
list_add(&_link after);
}
};
#define BB_ITEM(phead) (reinterpret_cast(phead))

class LightItem
{
public:
struct list_head _link;
FPoint _vp;
const FColor *_c;
int _dupInd;

bool _isSectorLit;
int _sector1;
int _sector2;
int _sd; // lazy value for sorting
};
#define LIGHT_ITEM(phead) (reinterpret_cast(phead))

class MoorItem
{
public:
struct list_head _link;
FPoint _vp;
int _catmor;

MoorItem(const FPoint &vp int catmor struct list_head *after)
{
_vp = vp;
_catmor = catmor;
list_add(&_link after);
}
};
#define MOOR_ITEM(phead) (reinterpret_cast(phead))

struct TrItem
{
const char *en_name;
const F_UINT16 uc_name[16];
int uc_len;
};
};

#define BOYTXT_OFFSET_X (-10)
#define BOYTXT_OFFSET_Y (-10)
#define BCNTXT_OFFSET_X (-10)
#define BCNTXT_OFFSET_Y (-10)

// Utility funtions

#define cc_attr_has_information(f) ((f).hasAttr(102) || (f).hasAttr(300))

static bool cc_has_other_cautions(const IrFeatureContent &fea)
{
String restrn = fea.getAttr(131);
return restrn.indexOf(‘‘) != -1;
}

#define HOBJ(f cc) 
HChartedobject hobj((f) (cc)->mbr() (cc)->parent()->layerMetrics())

static void cc_draw_line_area_obj(
const IrFeatureContent &fea 
ChartCanvas *cc 
int flags 
FPainter *painter)
{
switch (fea.primitive()) {
case IrFeatureContent::Line:
if (flags & ChartCanvas::styleLine) {
HOBJ(fea cc);
hobj.drawLine(painter);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        990  2013-01-30 17:35  ecdis-3.0configure

     文件        461  2013-04-02 11:10  ecdis-3.0make.rules

     文件       2836  2013-04-28 12:04  ecdis-3.0Makefile

     文件       1135  2013-01-30 18:07  ecdis-3.0mklib

     文件     553027  2013-04-28 13:42  ecdis-3.0sdkins57cast

     文件     458106  2013-04-28 13:42  ecdis-3.0sdkins57extr

     文件     442377  2013-04-28 13:42  ecdis-3.0sdkins57look

     文件       4044  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_chart.h

     文件        430  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_fishingzone.h

     文件        476  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_highlight.h

     文件       6751  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_layer.h

     文件        549  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_utmgrid.h

     文件       1304  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_vessel.h

     文件        754  2013-04-28 12:05  ecdis-3.0sdkincludeencenc_warning.h

     文件        143  2013-04-28 12:05  ecdis-3.0sdkincludeencenv.h

     文件       1879  2013-04-28 12:05  ecdis-3.0sdkincludeench_chartedobject.h

     文件       1159  2013-04-28 12:05  ecdis-3.0sdkincludeench_object.h

     文件        719  2013-04-28 12:05  ecdis-3.0sdkincludeenci18n.h

     文件       5418  2013-04-28 12:05  ecdis-3.0sdkincludeencir_datasets.h

     文件       3484  2013-04-28 12:05  ecdis-3.0sdkincludeencir_feature.h

     文件       2701  2013-04-28 12:05  ecdis-3.0sdkincludeencir_modulelib.h

     文件       1393  2013-04-28 12:05  ecdis-3.0sdkincludeencir_spatial.h

     文件       6303  2013-04-28 12:05  ecdis-3.0sdkincludeenclist.h

     文件        713  2013-04-28 12:05  ecdis-3.0sdkincludeencpaintdevice.h

     文件       8994  2013-04-28 12:05  ecdis-3.0sdkincludeencS52defs.h

     文件       2982  2013-03-04 12:21  ecdis-3.0sdkincludefbguifbgui.h

     文件       1095  2013-03-04 12:21  ecdis-3.0sdkincludefbguifbitmap.h

     文件       1527  2013-03-04 12:21  ecdis-3.0sdkincludefbguifclipper.h

     文件       2543  2013-03-04 12:21  ecdis-3.0sdkincludefbguifcolor.h

     文件        953  2013-03-04 12:21  ecdis-3.0sdkincludefbguiffont.h

............此处省略475个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)