OpenInventor开发环境配置——以vs2008为例

在Windows环境中,Coin3D只能配合Visual Studio(确切地说是Visual C++)一起使用。Coin3D支持Visual C++的多个版本,包括6.0、7.0(2002)、7.1(2003)、8.0(2005)和9.0(2008)。
首先进入Coin3D官方网站的下载页面http://www.coin3d.org/lib/downloads,选择下载开源软件。对于Windows平台而言,必选的组件为Coin、SoWin和simage,而Dime、Profit和Voleon可根据实际需要进行选择。这里不必去下载了,在里提供了coin3D组件,版本3.1.3.
这里写图片描述

1.安装前的准备工作

1)安装好开发环境(例如Vsiual Studio 2008);
2)建立目标文件夹(例如C:\Coin3D,也称之为$(COINDIR))。
3)设置环境变量:新建一个环境变量COINDIR,设置为“C:Coin3D”

2.Coin组件的安装

Coin组件的安装方式有两种:一种是下载Coin的源代码文件,通过生成解决方案的方法来实现安装过程;另一种方法是直接下载针对某个VC版本的组件包,解压缩到$(COINDIR)目录。由于后一种方法比较简单,而且在安装的过程中不会出现错误,推荐初学者使用。
1)在Coin 3.1.3的页面上,选择“Get Coin 3.1.3 for Windows(Visual C++ 9.0 binaries)”,下载到您的计算机。
2)将Coin-3.1.3-bin-msvc9.zip解压到C:\Coin3D文件夹,您将发现C:\Coin3D目录中增加了四个文件夹。此时,Coin组件已经安装就位。

3.SoWin组件的安装

SoWin组件的安装相对复杂些,步骤如下。
1)在SoWin1.5.0的页面上,下载SoWin1.5.0的源代码压缩包(一般选择zip格式)。
2)将SoWin-1.5.0解压到某个文件夹(除了C:\Coin3D),在…\SoWin-1.5.0\build\msvc9文件夹中找到sowin1.sln,双击它。Visual C++ 2008会自动启动,并将解决方案“sowin1”装载进来。
3)点击生成菜单下的“生成解决方案”,则解决方案会被重新生成。此时,可以发现msvc9文件夹中增加了一个sowin1d.dll文件和一个debug子目录。
4)将解决方案的配置改成“DLL(Release)”,再次生成解决方案。则msvc9文件夹中又增加了一个sowin1.dll文件和一个Release子目录(其中含有sowin1.lib)。

打开C:\Coin3D文件夹,发现C:\Coin3D\bin文件夹中增加了sowin1.dll、sowin1d.dll、sowin1d.pdb,C:\Coin3D\lib文件夹中增加了sowin1.lib和sowin1d.lib,C:\Coin3D\include\Inventor中增加了Win文件夹,其中含有一大堆与SoWin有关的头文件。此时,说明SoWin组件已安装成功。
其他组件的安装方法与上述一样,在这里我安装的是SoQt。

4.VS2008中的配置

  • 1.VC++目录——包含文件:增加Coin3D的包含文件,在此我是放在了E盘下的Coin3D文件夹下,因此为“C:\Coin3D\include”
  • 2.VC++目录——库文件:增加Coin3D的库文件“C:\Coin3D\lib”,点击“确定”
  • 3.项目属性——配置——所有配置——C/C++——预处理器——预处理器定义中添加COIN_DLL;SOWIN_DLL;SOQT_DLL
  • 4.配置——Debug——链接器——输入——附加依赖项中添加:coin3d.lib sowin1d.lib soqt1d.lib
  • 5.配置——Release——链接器——输入——附加依赖项中添加:coin3.lib sowin1.lib soqt1.lib

5.配置完成,验证一下

1.新建一个工程,取名为OpenInventor,在ui里添加一个widget,保存。
2.在头文件里:

#ifndef OPENINVENTOR_H
#define OPENINVENTOR_H

#include <QtGui/QWidget>
#include "ui_OpenInventor.h"

#include <Inventor/Qt/SoQt.h>
#include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
#include <Inventor/nodes/SoSeparator.h>
#include <Inventor/nodes/SoCylinder.h>

class OpenInventor : public QWidget
{
	Q_OBJECT

public:
	OpenInventor(QWidget *parent = 0, Qt::WFlags flags = 0);
	~OpenInventor();

private:
	Ui::OpenInventorClass ui;
};

#endif // OPENINVENTOR_H

3.CPP文件里:

#include "OpenInventor.h"

OpenInventor::OpenInventor(QWidget *parent, Qt::WFlags flags)
	: QWidget(parent, flags)
{
	ui.setupUi(this);

	SoQt::init(ui.widget); 
	SoQtExaminerViewer * viewer = new SoQtExaminerViewer(ui.widget);
	SoSeparator * root = new SoSeparator; 
	SoCylinder * cylinder = new SoCylinder; 
	root->ref(); 
	root->addChild(cylinder); 
	viewer->setSceneGraph(root); 
	viewer->show(); 
	SoQt::show(ui.widget);
	SoQt::mainLoop(); 
}

OpenInventor::~OpenInventor()
{

}

4.运行结果:
这里写图片描述


欢迎关注知乎专栏:Jungle是一个用Qt的工业Robot
欢迎关注Jungle的微信公众号:Jungle笔记
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯Jungle

您的支持是对我最大的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值