Edge2d简介

Edge2d version 0.1.0

Copyright © 2007-2008, Kevin Lynx. All rights reserved.

 

概述(Overview)

       Edge2d是一个非常面向对象并且插件化的2D游戏引擎。得益于良好的软件架构,Edge2d将是一个容易被扩展的,跨平台,且不依赖于任何底层库的引擎。Edge2d是彻底插件化的,这里所谓的插件化是指引擎除了基础模块以及抽象层以外,其他任何部分,包括具体的图形模块(例如Direct3D8),具体的输入模块(例如Direct Input),等一系列与具体的底层API有联系的模块都将是可被定制的。

       Edge2d的一个显著的设计思想是鼓励Edge2d的用户自己来开发插件,这意味着你完全可以轻松地在不修改引擎抽象层代码的前提下开发你自己的图形模块,然后将你的插件注册进Edge2d基础模块,即可定制出拥有新的处理能力的2D引擎。

       Edge2d是开源的,引擎的最初作者努力将自己的面向对象思想透过这些清晰明了的代码表达给代码阅读者。

 

特征列表(Features)

n       引擎定位于休闲2D游戏,即使引擎的图形插件使用的是3D API,用户也不需要了解任何3D的东西。

n       引擎核心设计为基于功能的接口,这使得用户拥有更大的灵活性。但是引擎辅助模块提供了一个简易的应用程序框架,引擎将在尽可能保持灵活性的基础上,提供给用户尽可能多的方便。

n       Edge2d良好的面向对象设计以及插件化的思想使得该引擎可以在不修改引擎代码的基础上被轻松扩展。引擎提供丰富的文档以及示例,让用户可以轻松学会如何开发一个插件。

n       Edge2d是完全免费的。

n       Edge2d图形模块鼓励用户使用Direct3D, OpenGL之类的图形API来开发,这意味着Edge2d使用3D硬件来加速2D

 

大致构架(architecture

Edge2d的发布版本包含三个主要部分:引擎基础部分以及抽象层次部分、引擎各种辅助部分、引擎的各种插件。

 

引擎的基础部分和抽象层次部分主要协定了引擎内部各个模块的交互,以及提供一些基础功能代码。基础功能代码包括日志系统,异常处理,IO基础部分等。

 

引擎的辅助部分由很多静态库组成,主要包括应用程序框架,帧动画系统,甚至一些从其他引擎中吸取过来的优秀模块(例如HGE 的粒子系统模块)。

 

引擎的插件部分由很多动态库提供,这些插件实现了引擎的抽象层,包括图形模块,图片解码模块,输入模块,IO流读取模块(引擎目前发布了读取zip以及lzo压缩包的插件),字体模块,操作系统相关模块。

 

 

 

 

Edge2d在GameRes上的论坛:

http://bbs.gameres.com/showforum.asp?forumid=91

Edge2d在GoogleCode上的项目地址:

http://edge2d.googlecode.com/

 

感谢sea_bug为Edge在GameRes上建立论坛。

 

在OpenCASCADE Technology (OCCT) 的几何模块中,`Geom2d_TrimmedCurve` 是一种二维修剪曲线,它代表了由原始曲线经过修剪操作得到的结果,即删除了一些部分后的剩余部分。如果你想要将这样的修剪曲线转换成边缘(`Edge`),你需要通过一系列的几何处理步骤: 1. 首先,确认修剪曲线是否是一个封闭的轮廓,因为`Edge`通常对应于线段或面边界的边界线。 2. 如果`Geom2d_TrimmedCurve`是一个封闭的轮廓,你可以使用 `BRepBuilderAPI_MakeWire` 函数将其封装到二维布尔模型(Wire)中,然后创建一个平面表面 (`TopoDS_Shape`)。 3. 使用 `BRepBuilderAPI_Transform` 将这个二维表面从笛卡尔坐标系变换到三维空间中的某个坐标位置,以便于与三维实体关联起来。 4. 然后,利用 `BRepTools::Add` 或者 `BRepTools::MakeEdgeFromShape` 将生成的二维形状转换为 `TopoDS_Edge` 对象,这一步将最终创建出所需的边缘。 ```cpp // 示例代码 Geom2d_Curve curve = ...; // 原始曲线 Geom2d_TrimmedCurve trimmed_curve = ...; // 修剪后的曲线 // 创建包围线并转换为三维 TopoDS_Wire wire = BRepBuilderAPI_MakeWire(trimmed_curve); TopoDS_Shape shape = TopoDS.hxx.TopoDS_Shape(wire); // 可选:变换到三维空间 gp_Pnt3d translation_point(0, 0, z_coordinate); // 根据需要设置三维位置 TopoDS_Shape transformed_shape = BRepBuilderAPI_Transform(shape, translation_point); // 转换为Edge TopoDS_Edge edge; if (BRepTools::Add(transformed_shape, edge)) { // 成功创建 Edge } else { // 处理错误 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值