小编jah*_*aho的帖子

为C#代码创建html文档

我正在开发一个C#项目,VisualAssist /// <summary></summary>为我生成这些花哨的评论,我一直在使用它们来记录我的代码.

我假设必须有一种方法可以使用这些注释来创建像Doxygen或Javadoc那样的HTML文档.我怎么做?

c# documentation visual-studio

55
推荐指数
2
解决办法
8万
查看次数

Kinect SDK:对齐深度和颜色框架

我正在使用Kinect传感器,我正在尝试对齐深度和颜色框架,以便我可以将它们保存为彼此"适合"的图像.我花了很多时间浏览msdn论坛和Kinect SDK的适度文档,我完全无处可去.

基于这个答案:Kinect:从RGB坐标转换为深度坐标

我有以下功能,在哪里depthDatacolorData从中获取NUI_LOCKED_RECT.pBits并且mappedData是包含新颜色框架的输出,映射到深度坐标:

bool mapColorFrameToDepthFrame(unsigned char *depthData, unsigned char* colorData, unsigned char* mappedData)
{
    INuiCoordinateMapper* coordMapper;

    // Get coordinate mapper
    m_pSensor->NuiGetCoordinateMapper(&coordMapper);

    NUI_DEPTH_IMAGE_POINT* depthPoints = new NUI_DEPTH_IMAGE_POINT[640 * 480];

    HRESULT result = coordMapper->MapColorFrameToDepthFrame(NUI_IMAGE_TYPE_COLOR, NUI_IMAGE_RESOLUTION_640x480, NUI_IMAGE_RESOLUTION_640x480, 640 * 480, reinterpret_cast<NUI_DEPTH_IMAGE_PIXEL*>(depthData), 640 * 480, depthPoints);
    if (FAILED(result))
    {
        return false;
    }    

    int pos = 0;
    int* colorRun = reinterpret_cast<int*>(colorData);
    int* mappedRun = reinterpret_cast<int*>(mappedData);

    // For each pixel of new color frame
    for (int …
Run Code Online (Sandbox Code Playgroud)

c++ image-processing kinect kinect-sdk

18
推荐指数
1
解决办法
8006
查看次数

C++:函数指向具有可变数量参数的函数

我试图找出一种方法,如何能够为具有不同数量的参数的函数分配函数指针.

我有一个while循环,它将许多不同的函数作为一个条件语句,所以我没有用完全相同的代码编写多个while循环,而是希望有一个带有函数指针的函数.所有功能都是格式化的bool f(...).我认为一些代码最能说明我的意思:

int a, b, c, d;
MyClass* my_class;

typedef bool (MyClass::*my_fun_t)();
my_fun_t my_fun;

if (condition1)
    my_fun = &MyClass::function_one();
else if (condition2)
    my_fun = &MyClass::function_two(a, b);
else if (condition3)
    my_fun = &MyClass::function_three(a, b, c);
else if (condition4)
    my_fun = &MyClass::function_four(a, b, c, d);

while ((my_class->*my_fun)()) 
{ ... }
Run Code Online (Sandbox Code Playgroud)

现在这显然不起作用,因为函数具有不同的签名.是否可以以类似的方式使其工作?我应该看一下functoids吗?

c++ member-function-pointers function-pointers function

17
推荐指数
2
解决办法
2万
查看次数

DirectX SDK与Windows SDK:使用哪一个?

我有一个基于DirectX 10的旧游戏引擎(有点),我一直计划将其转移到DX 11.我还安装了Windows 8和VS 2013,并且在尝试运行这个旧项目时我学到了是的DirectX SDK已被弃用,现在的Windows 8 SDK所取代.在这种情况下,我想知道更新到DX 11是否有意义,或者我应该尝试让我的引擎使用新的Windows 8 SDK.在做出决定之前,我想知道几件事:

1)Windows 8 SDK现在要学习还是DX 11仍然相关?比如,如果你想学习C++,你应该学习C++ 11,所以如果你现在想学习Direct3D,你应该学习Windows 8 SDK吗?

2)学习DirectX SDK有很多很好的资源:很多教程,微软自己的样本,NVidia Graphics SDK样本,AMD Radeon SDK样本等.目前有没有类似的优质资料可用于Windows 8的Direct3D或者只是msdn ?

3)基于Windows 8 SDK的引擎是否只能在Windows 8上运行?

4)两者之间的任何第一手经验/比较?

非常感谢!

c++ directx windows-8

11
推荐指数
1
解决办法
1万
查看次数

使用Qt信号和插槽直接调用方法

假设我有一个带有滑块的主窗口和一个窗口内的窗口小部件,其方法称为setValue(int).每次滑块的值发生变化时,我都想调用此方法.

以下两种实现方式之间是否存在实际差异:

1

void MainWindow::on_slider_valueChanged(int value)
{
    ui->widget->setValue(value);
}
Run Code Online (Sandbox Code Playgroud)

2

// somewhere in constructor
connect(ui->slider, SIGNAL(valueChanged(int)), ui->widget, SLOT(setValue(int)));
Run Code Online (Sandbox Code Playgroud)

对我来说,第一种方法看起来更好,因为它可能避免与信号和插槽机制相关的一些开销,并且,如果需要它,允许我value在发送之前处理widget它.

是否存在第二种解决方案更好的情况?

c++ user-interface qt class-design signals-slots

11
推荐指数
3
解决办法
7403
查看次数

类设计:数组与多个变量

我有一个理论上的问题,但是在设计类时我有时会遇到这个问题,而且在阅读其他代码时我看到它有所不同.以下哪项会更好,为什么:

例1:

class Color
{
public:
  Color(float, float, float);
  ~Color();

  friend bool operator==(Color& lhs, Color& rhs);
  void multiply(Color);
  // ...
  float get_r();
  float get_g();
  float get_b();

private:
  float color_values[3];
}
Run Code Online (Sandbox Code Playgroud)

例2:

class Color
{
public:
  // as above

private:
  float r;
  float g;
  float b;
}
Run Code Online (Sandbox Code Playgroud)

在这样的情况下是否应该遵循一般规则,还是仅仅取决于程序员以及看起来更有意义?

c++ arrays class-design

10
推荐指数
2
解决办法
2638
查看次数

定义常量时包括算术运算

所以我经常看到这样的事情:

#define gf_PI  f32(3.14159265358979323846264338327950288419716939937510)
#define gf_PIhalf  f32(3.14159265358979323846264338327950288419716939937510 * 0.5)
Run Code Online (Sandbox Code Playgroud)

这意味着每次在我的代码中使用gf_PIhalf时计算一半PI值,对吧?
相反,字面上写下一半PI的值不是更好吗?

做以下事情不是更好吗?

#define gf_PI f32(3.14159265358979323846264338327950288419716939937510)
const float gf_PIHalf = gf_PI * 0.5f;    // PIHalf is calculated once
Run Code Online (Sandbox Code Playgroud)

最后这样做是不是最好(为什么它似乎不是一种常见做法):

const float gf_PI = 3.14159265358979323846264338327950288419716939937510;
const float gf_PIHalf = gf_PI * 0.5f;
Run Code Online (Sandbox Code Playgroud)

c++ constants c-preprocessor

9
推荐指数
1
解决办法
1469
查看次数

可以多次链接信号和插槽吗?

我有类似下面的类设计,我想知道我是否可以使用许多信号槽连接来进行通信.有一个MainWindow类可以保存所有的GUI,然后是一个Wrapper类,它提供了一个后端接口,然后有一个Controller类来生成和管理线程,最后有一些类Worker可以完成所有的工作.

现在让我们说我正在加载一个文件,并希望使用进度条显示进度MainWindow.我的Worker班级发送updateProgress(int progress)Controller::handleProgress(int progress)插槽,再次向Wrapper课程发送进度信号,然后向主窗口发送进度信号,最后更新进度条.

类似地,当数据被加载时,它在Wrapper类中被处理,并且再次通过信号和槽进行通信(尽管少一步).

它是在Qt中做事的标准方式还是我应该重新考虑我的设计?

c++ qt multithreading signals

9
推荐指数
1
解决办法
1334
查看次数

转发为模板类声明typedef

我知道typedef不能在C++中进行前向声明,但我想知道什么是以下问题的最佳解决方案.我有一个头文件,声明MyClass如下:

#include <TemplateClassHeaders>

struct MyStruct
{
    // ...
}

typedef Really::Long::TemplateClassName<MyStruct> MyClass;
Run Code Online (Sandbox Code Playgroud)

MyClass在许多地方使用,但大部分只是作为指针通过Qt信号槽机制.前向声明将是所有需要的,但因为MyClass是一个不起作用的typedef.有没有办法避免将myclass.h添加到使用指针的每个标头MyClass

c++ templates typedef forward-declaration

8
推荐指数
1
解决办法
5365
查看次数

平滑开放3D网格边缘的算法

我有一个3D网格,它表示一个有一些粗糙边界的表面,我想要平滑:

网格边界1 网格边界2

我使用半边数据结构来存储几何体,因此我可以轻松地迭代边界边,顶点和面.我也可以很容易地确定一对给定的边缘是否是使用点和叉积的凸/凹.

什么是平滑边缘的最佳方法,因此它们形成连续的曲线,而不是图片中看到的锐利图案?

c++ algorithm 3d mesh smoothing

7
推荐指数
1
解决办法
1613
查看次数