当前位置: 首页 > news >正文

抄写diffcloth的源码

论文看不懂,代码也调不会,就直接抄代码吧,算了一下两万多行,抄吧,边抄边查边学,总能学会的。那么就开始抄src/code/engine/Macros.h吧。

首先,第一个难点:

#define GLM_ENABLE_EXPERIMENTAL
#define GLFW_INCLUDE_NONE

查一下deepseek,是这样说的:

在C++中使用GLM(OpenGL Mathematics)和GLFW(GLFW - 一个OpenGL的图形库)时,你遇到的两个宏定义#define GLM_ENABLE_EXPERIMENTAL和#define GLFW_INCLUDE_NONE有其特定的用途和必要性。下面我将解释每个宏的含义以及为什么它们被使用。
1. #define GLM_ENABLE_EXPERIMENTAL

GLM是一个现代的C++数学库,专门为OpenGL程序提供矩阵、向量、颜色等数学运算。从GLM 0.9.6版本开始,一些高级功能被标记为实验性(experimental),这意味着它们可能在未来的版本中发生变化或被移除。为了使用这些实验性功能,你需要在你的代码中定义GLM_ENABLE_EXPERIMENTAL宏。

‌示例用法:‌

#define GLM_ENABLE_EXPERIMENTAL
#include <glm/glm.hpp>
#include <glm/gtx/rotate_vector.hpp> // 例如,使用实验性的旋转向量功能

这样,你就可以访问GLM的这些实验性扩展功能了。
2. #define GLFW_INCLUDE_NONE

GLFW是一个跨平台的库,用于创建窗口、接收输入和处理事件。在GLFW的某些版本中,为了避免与Windows.h或其他库的潜在冲突,你可以通过定义GLFW_INCLUDE_NONE来防止GLFW自动包含任何标准头文件。

‌示例用法:‌

#define GLFW_INCLUDE_NONE
#include <GLFW/glfw3.h> // 确保在包含GLFW头文件之前定义此宏

如果你在使用Windows平台并且已经包含了Windows.h,那么定义GLFW_INCLUDE_NONE可以帮助避免重复包含标准头文件导致的编译错误或警告。

第二个难点:

#include <sstream>

这个头文件没学过。查到如下资料:

#include <sstream> 是 C++ 中用于包含标准字符串流库的头文件,该库提供了处理字符串的输入/输出功能。 ‌12
主要功能

<sstream> 头文件定义了三个核心类:

    ‌std::istringstream‌:从字符串中读取数据,类似 std::cin 的功能。 ‌23
    ‌std::ostringstream‌:向字符串写入数据,类似 std::cout 的功能。 ‌23
    ‌std::stringstream‌:支持读写操作,兼具前两者的功能。 ‌23

典型用法示例

    ‌读取字符串‌: 

std::istringstream iss(str);  
while (iss) {  std::string word;  iss >> word;  std::cout << word << endl;  
}  
``` ‌:ml-citation{ref="3,4" data="citationList"}

写入字符串‌:

std::ostringstream oss;  
oss << "Hello" << " World";  
std::string result = oss.str();  
``` ‌:ml-citation{ref="2,3" data="citationList"}

类型转换‌:

std::stringstream ss;  
ss << 123;  
int num = ss.str(); // 输出 123  
``` ‌:ml-citation{ref="2,4" data="citationList"}

第三个难点:

#define GL_SILENCE_DEPRECATION

在MacOS 10.14及以上版本中,使用OpenGL时会出现glTranslatef等函数被标记为过时(deprecated)的警告。要消除这些警告,可以加这个宏

第四个难点:

#define ARRAY_COUNT(x) (sizeof(x) / sizeof( (x)[0] )  )

这个写法很奇特,可以学习学习。

第五个难点:

#ifdef USE_DEBUG

在调试版本中,通常定义USE_DEBUG宏,此时包含调试信息的代码会被编译。

第六个难点:

#define DEBUG_PRINTF(x) printf x

这种语法活久见。

http://www.dtcms.com/a/587115.html

相关文章:

  • 龙华建设局网站深圳网站做优化哪家公司好
  • 网站开发php 图片上传失败媒体网站
  • 亿玫网站建设徐州企业建站模板
  • 哪里网站建设公司比较好英德市住房和城乡建设局网站
  • 温州网站开发南通seo网站排名优化
  • 窄带无线信道
  • 郑州直播网站建设公司哪个网站可以免费做招牌
  • 模态框的两种管理思路
  • 正规网站建设哪家好怎样申请网站呢
  • 测试用例~
  • 怎么做培训班网站找商务合作的平台
  • 做卖车网站需要什么手续费为什么招聘网站不能用自己做的简历
  • 昆山网站建设网站宝安网站设计公司
  • 中国可信网站查询丹东市做网站
  • 五大智能锁PK:哪种最适合你家?
  • 怎么用自己的电脑做网站空间电商运营培训课程
  • 江门网站开发多少钱企业备案网站服务内容
  • 北京建设信源咨询有限公司网站杭州发布最新消息
  • 坪山网站建设服务建设摩托车官网报价
  • 空投网站建设2345网址导航是谷歌吗
  • 网站的推广方式组合重庆一般建一个网站需要多少钱
  • 如何建立公众号的步骤网站seo快速优化技巧
  • 购物网站制作多少钱营销客户管理系统
  • 北京网站设计与制作如何让本机做网站让内网访问
  • 无线通信原理
  • 有没有做网站的软件女孩做网站工作辛苦吗
  • 晋安福州网站建设电脑培训班的课程
  • 分糖果算法题
  • 世界最大的购物网站免费的个人简历模板在哪找
  • 商务网站要怎么做公司外贸网站怎么做