网格处理平台学习笔记

在解决方案文件夹下有一个src文件夹,里面是各个项目的源代码。进入ApplicatinGUI文件夹(整个路径为GeometryProcessing-1\src\ApplicationGUI)可以看到有很多以.ui为后缀的文件,这些文件就是UI设计文件。在安装了qt的电脑上双击可打开。如下图为主窗口:

为了添加自己的代码,在菜单栏新加入了一个菜单MyTest,并为其添加子菜单find_neighbors

在\GeometryProcessing-1\src\ApplicationGUI\GeneratedFiles\ui_geometryMainWindow.h,下会自动(不记得是不是自己添加的了。。)注册刚刚的按钮

也就是代码中,action_Find_neighbors就是我们刚刚的Find_neighbors按钮的名称

我们在\GeometryProcessing-1\src\ApplicationGUI\MenuProcessor.cpp中为按钮设置监听事件,将名为find_neighbors()函数作为点击按钮后的处理函数

在\GeometryProcessing-1\src\ApplicationGUI\MenuProcessor.h中定义一个名为find_neighbors()函数

在MenuProcessor.cpp文件中实现该函数

在上述实现函数中,我们调用了一个同样名为find_neighbors的函数(这个函数声明在 GeometryProcess\SceneInterface\SceneInterface.h中,

名字可以自己定义,但是为了规范,可以和菜单处理cpp中命名保持一致。

其定义如下:

在SceneInterface.cpp中实现上述函数

同样,我们又调用了一个和发起调用的函数同名的函数,但是这个被调用的函数的声明是在我们自己添加的项目中的

完成类的编写后,更新这个函数体如下

需要注意的是,需要在SceneInterface.h头文件中包含TestMyProject.h

接下来,在VS解决方案中添加自己的项目,即在已有的解决方案中创建新的项目,具体操作如下图,注意规范项目的放置位置

同时注意项目的属性,如果建立的是一个空项目,则最后会出现一些链接的问题。正确的建立方式如下

下面就可以为自己的项目添加代码了。

头文件内容如下,定义我们调用最底层的函数

在对应的.cpp文件中实现头文件中定义的函数

在ApplicationGUI设置为启动项目的前提下,右键点击ApplicationGUI项目,选择属性,依次点击"框架和引用" à "添加新引用"

然后可以看到添加后的引用比没添加之前多了一项。

重新生成解决方案时,出错,错误提示:找不到GeometryProcessing-1\src\qtpropertybrowser-2.5_1-opensource\qtproptybrowser.lib,这是将qtpropertybrowser项目转换为qt add-in project,再生成这个工程,之后就可以生成整个解决方案了。

此外,运行这个工程最后调出的是一个窗口,其设置是在启动工程下的属性中设置的,如果要调出控制台,则可以更改"子系统"设置

比如,我们希望打开一个模型后,点击MyTest下的Find_Neighbors按钮后,程序在控制台输出一个hello world。

至此完成了从建立按钮到处理按钮对应事件的整个流程。

时间: 2024-10-11 03:32:45

网格处理平台学习笔记的相关文章

活字格Web应用平台学习笔记1 - 下载安装,ready go

今年有一个很重要的职业目标,就是好好学习活字格这个神器,争取在这两个月拿到活字格初级工程师的认证证书.给自己加个油,今天开始好好学习,好好做笔记. 第一步,下载安装 先去活字格官网:http://www.grapecity.com.cn/solutions/huozige 点上面那个下载按钮,就可以下到最新的安装包了,是个Zip文件,很快就下到本地了. 然后解压缩,装活字格设计器.还有个安装文件是服务器,那个是发布产品才需要的.我这新手才学呢,先不用装那个. 安装,界面很简洁,UI不错,我喜欢

GreenSock动画平台学习笔记(4)LoaderMax

属性    类型 功能 name String 用来标识ImageLoader实例,可用作LoaderMax.getLoader() or LoaderMax.getContent()的参数,也可随时trace,必须是唯一,如果没有显示设置,则会自动创建,如"loader21" container DisplayObject Container 代表图像内容的ContentDisplay(是一个sprite)会添加到这个参数指定的容器里面 smoothing Boolean 当为tru

GreenSock动画平台学习笔记(5)Loadermax

属性/方法    类型 功能 getClass(className:string)        Function 根据类名来获取已经加载完了的swf或它的通过LoaderMax加载的子swf中的类,获取到了类可以实例化该类.该方法将返回一个类 getSWFChild(name:String) Function 通过显示对象的name属性来获取加载的swf的最顶层的子显示对象,比如swf1是要加载的swf文件,在swf1的舞台上有一个叫a的影片剪辑,那么就可以用getSWFChild("a&qu

活字格Web应用平台学习笔记2-基础教程-开始

今天先学活字格第一个教程,开始. 目标是能够用活字格创建一个简单的Web页面. 哈哈,简单,跟Excel一样,做单元格输入.合并.文字居中.加底色.加图片,然后发布. 然后就真的生成了一个Web页面!虽然还不知道这个页面能干啥子用~~开心 照片是之前在昆明旅游拍的,好看吧~~ 原文地址:https://www.cnblogs.com/chunsunbajie/p/9019012.html

《深入Java虚拟机学习笔记》- 第2章 平台无关

Java虚拟机学习笔记(二)平台无关 <深入Java虚拟机学习笔记>- 第2章 平台无关,布布扣,bubuko.com

APPCAN学习笔记001---app高速开发AppCan.cn平台概述

1.APPCAN学习笔记---app高速开发AppCan.cn平台概述 1. 平台概述 技术qq交流群:JavaDream:251572072 AppCan.cn开发平台是基于HTML5技术的跨平台移动应用高速开发一体化解决方式. 开发人员利用HTML5+CSS3+JavaScript技术能够高速地开发与本地应用体验相媲美的移动应用. AppCan.cn平台提供了UI高速开发框架.本地功能调用API接口.应用打包系统.IDE集成开发环境和本地应用调试模拟器, 预置数百套界面模板和数十种应用插件,

CoAP学习笔记——nodeJS node-coap安装和使用(Linux平台)

 0 前言 本文说明如果安装和使用node-coap.CoAP是专门为物联网系统开发的面向网络的应用层协议栈,CoAP建立在UDP协议之上尽可能减少网络开销,又具有HTTP Restful类型的特性.node-coap使用nodejs实现了coap的客户端和服务器端. [测试环境]--ubuntu/Linux [相关博文] [CoAP协议学习--CoAP基础] [CoAP学习笔记--CoAP资源发现] [CoAP学习笔记--服务器端繁忙时的处理请求流程] [树莓派学习笔记--webiopi安装与

CoAP学习笔记——nodeJS node-coap安装和使用(windows平台)

0 前言 本文尝试在windows平台中搭建基于nodeJS的CoAP Server. linux平台搭建和使用过程可参考--CoAP学习笔记--nodeJS node-coap安装和使用(Linux平台) [测试环境]--windows [相关博文] [CoAP协议学习--CoAP基础] [CoAP学习笔记--CoAP资源发现] [CoAP学习笔记--服务器端繁忙时的处理请求流程] [树莓派学习笔记--webiopi安装与入门]webiopi中集成了CoAP Server,可以方便地通过CoA

DirectX学习笔记(四):利用D3DX网格数据结构绘制可旋转茶壶

前言: 在上篇文章(DirectX学习笔记三)中,我详细的说明了如何利用线框模式绘制可旋转的正方体.链接:点击打开链接.但是应该看到的是,如果我们通过创建三角形单元来创建3D物体是十分繁琐的事情.幸运的是,在D3DX库中提供了一些用于生成简单3D物体的网格数据方法. 如:利用网格数据创建一个茶壶: 1. 我们需要使用ID3DXMesh网格数据结构接口来创建我们的茶壶网格数据,这时我们需要使用此函数: HRESULT D3DXCreateTeapot(LPDIRECT3DDEVICE9 pDevi