原创 行爲型模式之狀態模式實現

概念 狀態模式是行爲模式的一種。State模式允許通過改變對象的內部狀態而改變對象的行爲,這個對象表現得就好像修改了它的類一樣。 狀態模式主要解決的是當控制一個對象狀態轉換的條件表達式過於複雜時的情況。把狀態的判斷邏輯轉譯到表現

原创 行爲型模式之訪問者模式實現

概念 訪問者模式,是行爲模式之一,它分離對象的數據和行爲,使用Visitor模式,可以不修改已有類的情況下,增加新的操作角色和職責。 角色和職責 抽象訪問者(Visitor)角色:聲明一個或者多個訪問操作,形成所有的具體元素角

原创 undefined reference to庫連接規則

轉載自:https://blog.csdn.net/cserchen/article/details/5503556 Linux下編譯程序時,經常會遇到“undefined reference to XXX” 報錯, 這裏總結一些

原创 行爲型模式之解析器模式實現

概念 一些應用提供了內建(Build-In)的腳本或者宏語言來讓用戶定義他們能夠在系統中進行的操作。Interpreter模式的目的就是使用一個解釋器爲用戶提供一個一門定義語言的語法表示的解釋器,然後通過解釋器來解釋語言中的句子。

原创 《最長的一幀》理解01_場景渲染

osgViewer:: ViewerBase::renderingTraversals() OSG 的場景渲染過程可以簡單地分爲三個階段:用戶(APP)階段,更新用戶數據,負責場景對象的運動和管理等等;篩選(CULL)階段,負責對

原创 《最長的一幀》理解

概況 宗旨:瞭解OSG在一幀時間,也就是仿真循環的一個畫面當中做了什麼。 while(!viewer.done()) viewer.frame(); osgViewer::ViewerBase::frame()函數

原创 循環鏈表的插入刪除實現

循環鏈表的插入、刪除 循環鏈表的插入示意: 循環鏈表的刪除示意: typedef void CircleList; typedef struct _tag_CircleListNode { struct _ta

原创 函數模板和類模板的區別

轉自:http://blog.csdn.net/csw_100/article/details/5844615 函數模板與類模板有什麼區別? 答:函數模板的實例化是由編譯程序在處理函數調用時自動完成的,而類模板的實例化必須由程序員

原创 osg座標系理解

對於下面的代碼(選自《OSG海軍教程》第十課第一節 使用自定義矩陣來放置相機,但數據有更改): // 相機位於坦克後方60個單元,上方7個單元。 tankXform->setPosition( osg::Vec3(0,60,8)

原创 C++中類成員函數作爲回調函數

轉載自:http://blog.csdn.net/this_capslock/article/details/17001003 回調函數是基於C編程的Windows SDK的技術,不是針對C++的,程序員可以將一個C函數直接作爲回

原创 float 和int轉換是怎麼做到的

轉載自:http://blog.sina.com.cn/s/blog_5c6f79380101bbrd.html 那麼真正存在內存裏的這個二進制數,轉化回十進制,到底是比原先的十進制數大呢,還是小呢?答案是It depends。人

原创 VS開啓語法檢查功能(VAssist情況下)

解決辦法 在Vs的Tools->Options->Text Editor->Advanced->IntelliSense中設置Disable Squiggles(波浪線)爲True,問題即可解決: 原因:http://docs.

原创 C++獲取類中成員函數的函數指針

void (A::*ptrnonstatic)() = &A::nonstatic; 注意調用類中非靜態成員函數的時候,使用的是類名::函數名;而不是實例名::函數名。 class A { public: static

原创 行爲型模式之迭代器模式實現

概念 迭代模式是行爲模式之一,它把對容器中包含的內部對象的訪問委讓給外部類,使用Iterator(遍歷)按順序進行遍歷訪問的設計模式。 在應用Iterator模式之前,首先應該明白Iterator模式用來解決什麼問題。或者說,如果

原创 RGB-D 實時三維重建/SLAM 中的 ICP 算法解析

原文鏈接:https://blog.csdn.net/fuxingyin/article/details/51425721 轉載自:https://blog.csdn.net/fuxin