Beispiel #1
0
Mat4 createIdMatrix() {
    Mat4 mat;

    mat.n1 = createVec4(1.0f, 0.0f, 0.0f, 0.0f);
    mat.n2 = createVec4(0.0f, 1.0f, 0.0f, 0.0f);
    mat.n3 = createVec4(0.0f, 0.0f, 1.0f, 0.0f);
    mat.n4 = createVec4(0.0f, 0.0f, 0.0f, 1.0f);

    return mat;

}
Beispiel #2
0
Mat4 createOrthogonalMatrix(int w, int h, float near, float far) {
    Mat4 mat;
    float clip1, clip2;

    if ((far - near) == 0.0f) {
        clip1 = -1.0f;
        clip2 = 0.0f;
    } else {
       clip1 = 1.0f/(far-near); 
       clip2 = -1.0f * ((far + near)/(far-near));
    }

    mat.n1 = createVec4(2.0f/(float)w, 0.0f, 0.0f, 0.0f);
    mat.n2 = createVec4(0.0f, 2.0f/(float)h, 0.0f, 0.0f);
    mat.n3 = createVec4(0.0f, 0.0f, clip1, 0.0f);
    mat.n4 = createVec4(-1.0f, -1.0f, clip2, 1.0f);

    return mat;
}
Beispiel #3
0
Mat4 translate(Mat4 * mat, Vec3 * vec) {
    float x, y, z;
    Mat4 translatedMat;

    // Calculating translation
    x = (mat->n1.x * vec->x) * (mat->n4.x);
    y = (mat->n2.y * vec->y) * (mat->n4.y);
    z = (mat->n3.z * vec->z) * (mat->n4.z);

    translatedMat.n1 = mat->n1;
    translatedMat.n2 = mat->n2;
    translatedMat.n3 = mat->n3;
    translatedMat.n4 = createVec4(x, y, z, 1);

    return translatedMat;
}
Beispiel #4
0
void 
PropertyManager::addAttribute(wxPropertyGridManager *pg, std::unique_ptr<Attribute> &a) {

	switch (a->getType()) {

	case Enums::ENUM: createEnum(pg, a); break;
	case Enums::BOOL: createBool(pg, a); break;
	case Enums::BVEC4: createBVec4(pg, a); break;
	case Enums::INT: createInt(pg, a); break;
	case Enums::IVEC3: createIVec3(pg, a); break;
	case Enums::UINT: createUInt(pg, a); break;
	case Enums::UIVEC2: createUIVec2(pg, a); break;
	case Enums::UIVEC3: createUIVec3(pg, a); break;
	case Enums::FLOAT: createFloat(pg, a); break;
	case Enums::VEC2: createVec2(pg, a); break;
	case Enums::VEC3: createVec3(pg, a); break;
	case Enums::VEC4: createVec4(pg, a); break;
	case Enums::MAT3: createMat3(pg, a); break;
	case Enums::MAT4: createMat4(pg, a); break;
	case Enums::STRING: createString(pg, a); break;
	default: assert(false && "Missing datatype in property manager");

	}
}
Beispiel #5
0
void drawSquare(Sprite * sprite, float x, float y, float width, float height, ColorRGBA color) {
    Vec4 uvs = createVec4(0.0f, 0.0f, 1.0f, 1.0f);
    updateSprite(sprite, x, y, width, height, color, &uvs, 0x0);
    drawVertexes(sprite, DRAW_OUTLINE);
}