1、實現乙個應用程式插架框架關鍵點有:
乙個外掛程式的標準介面,在主程式中存在乙個外掛程式的集合。主程式通過迴圈讀取每個外掛程式,將外掛程式物件通過多型的機制轉換為外掛程式介面,實現外掛程式的裝載。
主程式物件或者主程式介面需要作為引數傳遞到外掛程式物件中,以方便外掛程式物件呼叫主程式的內容,如主檢視、工具欄、樹檢視、狀態列等。
2、開源點雲處理軟體cloudcompare也是乙個外掛程式框架,因此也必然包括這些內容。
外掛程式介面:ccplugininte***ce,每個外掛程式物件有在ccplugininte***ce基礎上定義了乙個新的介面類class ccstdplugininte***ce : public ccplugininte***ce
具體的外掛程式則繼承自ccstdplugininte***ce 累,比如這樣,class qmyplugin : public qobject, public ccstdplugininte***ce
mainwindow::loadplugins()方法負責外掛程式的呼叫。(mainwindow.cpp檔案中)
1void
mainwindow::loadplugins()247
else
4853}54
else
5560}61
62if
(menuplugins)
6366
67if (*******plugintools->isenabled())
6872
else
7377
78if (*******glfilters->isenabled())
7983
else
8488 }
主程式在載入外掛程式時會呼叫外掛程式的
1//2/** called just after plugin creation by qcc3*
*/4virtual
3、獲取主窗體中的點雲圖層
在doaction中的**:
12 size_t selnum =selectedentities.size();
3if (selnum!=1)4
89 cchobject* ent = selectedentities[0
];10
assert(ent);
11if (!ent || !ent->isa(cc_types::point_cloud))
1216
17 ccpointcloud* pc = static_cast(ent);
1819
//input cloud
20 unsigned count = pc->size();
21bool hasnorms = pc->hasnormals();
22ccvector3 bbmin, bbmax;
23 pc->getboundingbox(bbmin,bbmax);
24const ccvector3d& globalshift = pc->getglobalshift();
25double globalscale = pc->getglobalscale();
JQuery外掛程式開發初探 結構熟悉
工作之餘,對jquery外掛程式做了一點嘗試,想著之前總用別人寫的外掛程式,自己要是也寫乙個用豈不是很cool。於是說幹就幹,動手開始寫。首先是模仿,從乙個簡單的功能進行入手,了解一下外掛程式開發的流程和結構。第乙個嘗試是做乙個 的隔行變色外掛程式,相對簡單。首先是基本的框架結構 自己的外掛程式要定...
cccc 天梯賽後總結
這個比賽,突然通知要參加,那就去唄。人幾乎是隨便選的。我們軟體找出來了10個人,大二的6個,大三的四個,但是成績非常不理想。還是給學校抹黑了。以後的比賽,出去參賽的人員一定要經過嚴格篩選!還有出去一定嚴格要求隊員,以團隊為主。沒有團隊精神,就不用帶出去了。比賽題,題不難。我們隊伍只得到1411.選人...
CCCC天梯賽總結
今年cccc天梯賽是3月31號比的,我現在才反應過來自己似乎應該給這場比賽做個總結。3.31號,我來到北京參加比賽,懷揣著忐忑的心情,期盼著自己能取得自己心中能取得的成績。我知道自己的水平是相當不到位的,畢竟我進入大學才接觸程式設計,所以在來之前我就已經給自己定好了乙個自己力所能及的目標,務必將比賽...