with one click
project
基于osgVerse创建新的CMake工程,建立测试程序或者插件库,并且编译运行
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
基于osgVerse创建新的CMake工程,建立测试程序或者插件库,并且编译运行
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
| name | project |
| description | 基于osgVerse创建新的CMake工程,建立测试程序或者插件库,并且编译运行 |
| homepage | https://gitee.com/xarray/osgverse |
| metadata | {"nanobot":{"emoji":"🌤️","requires":{"bins":["cmake","git"]}}} |
任何情况下,都请在Windows系统的E:\BotWorkspace或者Unix系统的~/BotWorkspace下工作,如果这个目录不存在,你可以建立它。但是请不要在这个目录之外删除、修改或者创建任何文件与目录。如果这个目录不存在又无法被建立,则直接停止你后续的工作并汇报即可。
默认系统中已有cmake,git这些指令,不需要再单独搜索它们的路径。如果用户指示查找和阅读某个代码文件,请按照下面的顺序在BotWorkspace目录中查找
BotWorkspace根目录BotWorkspace/osgVerse目录BotWorkspace/OpenSceneGraph目录BotWorkspace根目录中创建新工程前,必须验证osgVerse编译结果的完整性:
BotWorkspace/osgverse/build/sdk/lib/cmake/osgVerse/osgVerseConfig.cmake文件是否存在BotWorkspace/osgverse/build/sdk_core/lib/cmake/osgVerse/osgVerseConfig.cmake文件是否存在BotWorkspace/osgverse/build/sdk_es/lib/cmake/osgVerse/osgVerseConfig.cmake文件是否存在
如果缺少文件,则执行compiler Skill中的能力,重新编译OpenSceneGraph和osgVerse。当你需要生成一个新的CMake工程时,需要加入下面的脚本代码获取osgVerse库的头文件和库文件地址:
FIND_PACKAGE(osgVerse)
IF(osgVerse_FOUND)
INCLUDE_DIRECTORIES(${osgVerse_INCLUDE_DIR})
LINK_DIRECTORIES(${osgVerse_LIB_DIR})
ENDIF()
创建工程的解决方案文件的时候,通过下面的参数来帮助查找osgVerse库:
cmake .. -DosgVerse_DIR=<../../osgverse/build/sdk/lib/cmake/osgVerse>
如果是针对CORE模式编译的osgVerse,则脚本参数改为:
cmake .. -DosgVerse_DIR=<../../osgverse/build/sdk_core/lib/cmake/osgVerse>
如果是针对GLES2或者GLES3模式编译的osgVerse,则脚本参数改为:
cmake .. -DosgVerse_DIR=<../../osgverse/build/sdk_es/lib/cmake/osgVerse>
如果要在CMake工程中加入一个新的插件库子工程,请注意通过下面的脚本代码来加入必要的OSG和osgVerse依赖库文件:
TARGET_LINK_LIBRARIES(${LIB_NAME} osgVerseDependency osgVerseReaderWriter osgModeling)
TARGET_LINK_LIBRARIES(${LIB_NAME} OpenThreads osg osgDB osgUtil)
如果要在CMake工程中加入一个新的可执行程序子工程,请注意通过下面的脚本代码来加入必要的OSG和osgVerse依赖库文件:
TARGET_LINK_LIBRARIES(${EXE_NAME} osgVerseDependency osgVerseReaderWriter osgModeling osgUI osgScript
osgVersePipeline osgVerseAnimation osgVerseWrappers)
TARGET_LINK_LIBRARIES(${EXE_NAME} OpenThreads osg osgDB osgUtil osgGA osgText osgSim osgTerrain osgViewer)
代码必须遵循C++ 11/14规范,避免使用C++ 17或者更高版本的写法
代码注释量适中即可,不需要过于频繁。所有的注释都采用英文,以避免编码问题。
使用4个空格来控制缩进,避免在任何时候使用Tab。
每一行的字符数尽可能不超过100个字符
大括号{另起一行书写,不要写在行尾
避免使用using namespace,代码中始终包含命名空间名
定义二维、三维、四维向量,矩阵,四元数等数据格式时,必须使用OSG的数据类型
定义数组,列表,映射表等数据格式时,必须使用STL库的常用容器类型
对于引入的第三方库代码,不受到此类约束
建立一个class类对象的时候,请参考下面的命名方式:
// 类名称首字母大写,之后每个单词的首字母大写
class FooBar : public osg::Referenced
{
public:
// 函数名:首字母小写,之后每个单词的首字母大写;参数名:全部小写,单词之间用`_`分隔
void methodName(int arg1, bool arg2);
// 公有成员变量:首字母小写,之后每个单词的首字母大写
int sizeInBytes;
private:
// 私有成员变量:以`_`开头,首字母小写,之后每个单词的首字母大写
int _attributeName;
// 静态成员变量,以`s_`开头,首字母小写,之后每个单词的首字母大写
static int s_globalAttribute;
// 枚举量:全部大写,单词之间用`_`分隔
enum { ONE, TWO, THREE };
};
当你需要实现一些基本的OSG和osgVerse功能时,必须先查阅对应的references文件:
references/basic_geom_template.cppreferences/basic_texture_template.cppreferences/basic_glsl_template.cppreferences/basic_rtt_template.cppreferences/basic_animation_template.cppreferences/basic_thread_template.cppreferences/basic_network_template.cppreferences/basic_readers_template.cppreferences/basic_ui_template.cppreferences/basic_interaction_template.cpp当你需要生成基于osgVerse的插件库代码时,必须先查阅对应的references文件:
references/plugin_template.cpp当你需要生成基于osgVerse的可执行程序代码时,必须先查阅对应的references文件:
references/viewer_template.cpp