小编Jac*_*oen的帖子

在Vim中选择整个函数定义

我已经为Vim进行了近一周的文本编辑工作了.我想知道选择C函数定义的最快方法.

例如,如果我有这样的函数:

void helloworlds( int num )
{
    int n;
    for ( n = 0; n < num; ++n ) {
        printf( "Hello World!\n" );
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能删除整个定义,包括函数名称?

vim select function definition

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

OpenGL:如何让光线独立于旋转?

我有一个漫反射照明着色器,它似乎在物体不旋转时起作用.但是,当我应用旋转变换时,灯光似乎也随着对象一起旋转.这就像物体和光线保持静止但相机是围绕物体移动的相机.

这是我的顶点着色器代码:

#version 110

uniform mat4 projectionMatrix;
uniform mat4 modelviewMatrix;
uniform vec3 lightSource;

attribute vec3 vertex;
attribute vec3 normal;

varying vec2 texcoord;

void main() {
    gl_Position = projectionMatrix * modelviewMatrix * vec4( vertex, 1.0 );

    vec3 N = gl_NormalMatrix * normalize( normal );
    vec4 V = modelviewMatrix * vec4( vertex, 1.0 );
    vec3 L = normalize( lightSource - V.xyz );

    float NdotL = max( 0.0, dot( N, L ) );

    gl_FrontColor = vec4( gl_Color.xyz * NdotL, 1.0 );

    gl_TexCoord[0] = …
Run Code Online (Sandbox Code Playgroud)

c++ opengl shader lighting rotation

5
推荐指数
1
解决办法
3465
查看次数

通过智能指针重置对象

我是C++的新手,我想知道重建/重新初始化对象的最佳方法是什么?我的最小代码如下所示:

typedef boost::shared_ptr<Object> PObject;

int main()
{
    PObject SomeObject;

    SomeObject = PObject(new Object);
    // some code
    *SomeObject = Object();
}
Run Code Online (Sandbox Code Playgroud)

我觉得这不是正确的做法.有人能告诉我最好的方法吗?我只是想知道如何重建/重新初始化一个对象.谢谢!

c++ pointers smart-pointers

2
推荐指数
1
解决办法
785
查看次数