原创 委託的簡單應用

int Max(int x, int y) { return x > y ? x : y; } int Min(int x, int y)

原创 MFC+OSG之UI COM組件開發

前幾天研究了WPF開發UI COM組件,今天結合OSG給大家演示一下如何開發OSG的UI COM組件。 我這裏的OSG環境是之前搭建好的,編譯的是64位的。環境沒有搭建好可以參考如下網站: OSG+VS2015+Win10配置 h

原创 NwCreate之創建nwc文件

環境:Navisworks 2016、Navisworks 2016 SDK、Microsoft Visual Studio 2013。 1、創建應用程序,選擇默認設置,點擊完成。 2、在新建項目右鍵“屬性“,設置平臺爲x64。

原创 刪除實例

可以根據需要,刪除不需要的實例。 Transaction tr = new Transaction(doc, "DelecteInstance"); tr.Start();

原创 理解矩陣乘法

大多數人在高中,或者大學低年級,都上過一門課《線性代數》。這門課其實是教矩陣。 剛學的時候,還蠻簡單的,矩陣加法就是相同位置的數字加一下。 矩陣減法也類似。 矩陣乘以一個常數,就是所有位置都乘以這個數。 但是,等到矩陣

原创 SVN的代碼遷移到TFS的方法

1.代碼之前是SVN管理的,準備換TFS管理。首先解除SVN文件夾綁定 (1). 創建一個reg文件 (2). 在文件中填入如下內容並保存: Windows Registry Editor Version 5.00 [HKEY_LOC

原创 OSGEarth之座標轉換

// 屏幕座標轉世界座標 osg::Vec3d ScreenToWorld(const osg::Vec3d screen) { osg::Camera* camera = _global->Viewer->getCamera();

原创 OSG&OSGEarth中文處理方法

std::string StringToUTF8(const std::string& str) { std::wstring ansiStr; { int nLen = ::MultiByteToWideChar(CP_AC

原创 OSG之禁用按下Escape關閉視圖

我們在操作視圖的時候,按下Escape視圖被動關閉,操作起來着實不方便。如何才能禁用Escape關閉視圖呢? 查看源碼發現如下: /** Set the key event that the viewer checks

原创 EarthManipulator的縮放問題

EarthManipulator默認的操作是向裏滾動,地球遠了,向外滾動,地球進了。 我不太習慣這種操作,我個人認爲向裏滾動,地球近了,向外滾動,地球遠了。 查找了一下EarthManipulator的源碼,在初始化的時候簡單修改一下

原创 ATL對象構造及互轉方法

1.對象構造 CComObject<CITest>* test; CComObject<CITest>::CreateInstance(&test); 2.CComObject轉IITest* test->QueryInterfac

原创 OSGEarth添加天空盒

在Earth的基礎上添加天空盒,使得Earth更加好看。 _global->SkyNode->setDateTime(osgEarth::DateTime(d.year(), d.month(), d.day(), 5.0));

原创 OSGEarth關閉光照的方法

方法一:earth文件配置關閉 <options> <lighting>false</lighting> <terrain> <lighting>false</lighting>

原创 OSGEarth添加渲染器

Earth的渲染機制和OSG的不一樣,具體區別我也說不出一二來,直接上代碼。 _global->Caster->setLight( _global->Viewer->getLight() ); _global->Caster->

原创 EarthManipulator實現定位

EarthManipulator* em = new EarthManipulator(); viewer.setCameraManipulator( em ); 方法一 em->setTetherNode(