osg

OpenSceneGraph 笔记--C++/CLI写托管Scene类

…衆ロ難τιáo~ 提交于 2019-11-26 15:14:27
最近学了C++/CLI,也写了一些小玩意儿体验了它的强大,昨天开始筹划将以前的弯管机的模拟程序用C++/CLI重写。 基本思路是将底层3D部分和上层GUI图形界面部分大体分离。最原始的做法是写一个C++的类,然后定义一些接口,然后用C++/CLI写一个 Wrapper,然后用C#进行调用。这种做法其实不是很好,增加了很大的工作量,而且在写Wrapper的时候难免有很多重复性的赋值代码。 第二种思路就是直接用C++/CLI开始写,将Native部分和Managed部分合并在一块儿写。当然C++/CLI有一些限制,不能在托管类里面直 接嵌套非托管类,只能有非托管类的指针等等。这个限制带来的最大的不好是osg::ref_ptr,也就是OpenSceneGraph里面的智能指针无 法使用了,因为他是一个类型,不能直接嵌入到托管类里面,所以类似下面的语法是错误的: ref class ManagedClass { osg::ref_ptr<osg::Node> node; } 当然这样写是正确的: ref class ManagedClass { osg::Node* node; } 但这样就失去了智能指针的保护,很容易造成内存泄露,所以当务之急是需要写一个智能指针来代替osg::ref_ptr,但基本上要保持功能的不变。 OpenSceneGraph的引用类都是继承与osg::Object

数控弯管机加工三维仿真(视频)

烂漫一生 提交于 2019-11-26 15:12:52
这是我一直在做的数控弯管机加工三维仿真程序的视频。目前整个程序用C++/CLI写成,界面用的是.NET的控件(颜色因为要和之前工程保持一致,所以比较丑),三维部分使用OSG进行显示,控制使用托管C++进行编程以便和OSG进行交互。三维机床使用Solidworks建模然后进行处理导出为OSG支持的格式。夹具使用实体布尔运算生成,可进行参数化生成。工艺流程由另外小组的工程生成,然后转换成本程序能够识别的格式进行动作模拟。本程序大量应用C++/CLI技术,将.NET平台的优势进行了最大程度的发挥,以后的工作会对程序进行更多的BUG除错和优化。 [hjp2=400,300,true]http://www.hesicong.net/store/DEMO/BENDER/bender.wmv[/hjp2] 转载于:https://www.cnblogs.com/hesicong/archive/2008/02/15/1069684.html 来源: https://blog.csdn.net/weixin_30252155/article/details/98913670

正确运行OSG的例子

血红的双手。 提交于 2019-11-26 15:12:41
  OSG为我们提供了很多有用的例子,那么如何正确运行这些例子呢?我将我的一些经验写出来,希望对大家有所帮助。 1、命令行参数如何找? main函数作为一个程序的入口很多命令行的参数的在这里处理。OSG的例子里很多都是需要提供参数的,否则就需要调用默认的文件。注意如果你直接运行OSG的例子有可能只是一闪而过,正常的,不要惊慌,只需要分析一下到底需要什么命令行参数就可以正确的运行起来。 以osgviewer这个程序来讲,我们看看相关的处理函数: arguments.getApplicationUsage()->setApplicationName(arguments.getApplicationName()); //设置程序的名称 arguments.getApplicationUsage()->setDescription(arguments.getApplicationName()+" is the standard OpenSceneGraph example which loads and visualises 3d models."); //简单的描述 arguments.getApplicationUsage()->setCommandLineUsage(arguments.getApplicationName()+" [options] filename ...");

Windows7 + OSG3.6 + VS2017 + Qt5.11

情到浓时终转凉″ 提交于 2019-11-26 14:07:52
1, 编译OSG 由于重装了win10的系统,Qt也安装了最新版5.13,把之前OSG重新编译了一遍,过程与之前的一模一样。 Windows7 + OSG3.6 + VS2017 + Qt5.11 2,编译osgQt 下载地址github很容易找到,或者去我的百度网盘 https://github.com/openscenegraph/osgQt 链接: https://pan.baidu.com/s/16fsblXbO3EBdzhL80zL__g 提取码: e8xc 3,新建两个文件夹 C:\OSG\osgQt 将步骤2中下载的压缩包解压到该文件夹中 C:\OSG\osgQt_build 编译结果存放 4,打开CMakelists.txt,修改如下参数 4.1 对应的OSG版本 5,打开CMake,如下设置 选择对应的文件夹,Qt的安装路径,点configure,没有红色提示,就点Generate 6,编译 7.编译出现了错误 来源: https://www.cnblogs.com/dalanjing/p/11323388.html

[原][OE][官方例子]osgearth_features OE地球添加shp文件(特征标识)

一笑奈何 提交于 2019-11-26 13:47:11
OE所有官方样例 官方示例代码 /* -*-c++-*- */ /* osgEarth - Dynamic map generation toolkit for OpenSceneGraph * Copyright 2016 Pelican Mapping * http://osgearth.org * * osgEarth is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND

[原][OE][官方例子]osgearth_annotation OE地球添加热点标签

夙愿已清 提交于 2019-11-26 13:44:51
OE代码样例 /* -*-c++-*- */ /* osgEarth - Dynamic map generation toolkit for OpenSceneGraph * Copyright 2016 Pelican Mapping * http://osgearth.org * * osgEarth is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND