当前位置: 首页>>代码示例>>C++>>正文


C++ mat3::get方法代码示例

本文整理汇总了C++中mat3::get方法的典型用法代码示例。如果您正苦于以下问题:C++ mat3::get方法的具体用法?C++ mat3::get怎么用?C++ mat3::get使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在mat3的用法示例。


在下文中一共展示了mat3::get方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

mat3 operator +(const mat3 &_lhs, const mat3 &_rhs)
{
    mat3 m;
    for(int i = 0; i < 9; ++i)
        m.set( i, _lhs.get(i) + _rhs.get(i) );
    return m;
}
开发者ID:bhawkyard1,项目名称:Captain-Fractal-Attack-of-the-Space-Communists,代码行数:7,代码来源:mat3.cpp

示例2: determinant

float determinant(const mat3 &_m)
{
    float a = _m.get(0,0);
    float b = _m.get(1,0);
    float c = _m.get(2,0);
    float d = _m.get(0,1);
    float e = _m.get(1,1);
    float f = _m.get(2,1);
    float g = _m.get(0,2);
    float h = _m.get(1,2);
    float i = _m.get(2,2);

    return a * (e*i - f*h) -
            b * (d*i - f*g) +
            c * (d*h - e*g);
}
开发者ID:bhawkyard1,项目名称:Captain-Fractal-Attack-of-the-Space-Communists,代码行数:16,代码来源:mat3.cpp

示例3: transpose

mat3 transpose(const mat3 &_m)
{
    mat3 r;
    for(int i = 0; i < 3; ++i)
        for(int j = 0; j < 3; ++j)
            r.set(j, i, _m.get(i, j));
		return r;
}
开发者ID:bhawkyard1,项目名称:Captain-Fractal-Attack-of-the-Space-Communists,代码行数:8,代码来源:mat3.cpp

示例4: l

mat3 operator *(const mat3 &_lhs, const mat3 &_rhs)
{
    mat3 m;
    for(int i = 0; i < 3; ++i)
        for(int j = 0; j < 3; ++j)
        {
            vec3 l (
                        _lhs.get( 0, j ),
                        _lhs.get( 1, j ),
                        _lhs.get( 2, j )
                        );
            vec3 r (
                        _rhs.get( i, 0 ),
                        _rhs.get( i, 1 ),
                        _rhs.get( i, 2 )
                        );
            m.set(i, j, dot(l, r));
        }
    return m;
}
开发者ID:bhawkyard1,项目名称:Captain-Fractal-Attack-of-the-Space-Communists,代码行数:20,代码来源:mat3.cpp

示例5: setMatrix

void Graphics::setMatrix(ConstantLocation location, const mat3& value) {
	if (location.shaderType == -1) return;
	float floats[12];
	for (int y = 0; y < 3; ++y) {
		for (int x = 0; x < 3; ++x) {
			floats[y * 4 + x] = value.get(y, x);
		}
	}
	if (location.shaderType == 0) device->SetVertexShaderConstantF(location.reg.regindex, floats, 3);
	else device->SetPixelShaderConstantF(location.reg.regindex, floats, 3);
}
开发者ID:KTXSoftware,项目名称:Kha-haxelib,代码行数:11,代码来源:Direct3D9.cpp

示例6: setMatrix

void Graphics::setMatrix(ConstantLocation location, const mat3& value) {
	FRHICommandListImmediate& commandList = GRHICommandList.GetImmediateCommandList();
	TShaderMapRef<FVertexShaderExample> VertexShader(GetGlobalShaderMap(ERHIFeatureLevel::SM5));
	mat3 value2 = value.Transpose();
	float floats[12];
	for (int y = 0; y < 3; ++y) {
		for (int x = 0; x < 3; ++x) {
			floats[y * 4 + x] = value.get(y, x);
		}
	}
	commandList.SetShaderParameter(VertexShader->GetVertexShader(), location.parameter.GetBufferIndex(), location.parameter.GetBaseIndex(), 4 * 12, floats);
}
开发者ID:Disar,项目名称:Kore,代码行数:12,代码来源:RHI.cpp

示例7:

mat3 mat3::operator *(const mat3& rhs)
{
	float a[VEC_DIM*VEC_DIM] = {0.0f};
	for(int i = 0; i < VEC_DIM; i++) {
		for(int j = 0; j < VEC_DIM; j++) {
			for(int z = 0; z < VEC_DIM; z++) {
				a[i * VEC_DIM + j] += v[i].v[z] * rhs.get(z , j);
			}
		}
	}
	return mat3(a);
}
开发者ID:solomonchild,项目名称:opengl_samples,代码行数:12,代码来源:mat3.cpp

示例8: parseTransformation

void XmlSceneLoader::parseTransformation(TiXmlElement* elem, vec3& tr, vec3& sc, mat3& rot, Collider* collider)
{
    tr={0,0,0};
    sc={1,1,1};
    rot=mat3::IDENTITY();

    elem = elem->FirstChildElement();

    while(elem)
    {
        if(elem->ValueStr() == std::string("translate"))
            tr = toVec<3>(StringUtils::str(elem->GetText()));
        else if(elem->ValueStr() == std::string("scale"))
            sc = toVec<3>(StringUtils::str(elem->GetText()));
        else if(elem->ValueStr() == std::string("rotate"))
        {
            Vector<float, 9> r = toVec<9>(StringUtils::str(elem->GetText()));

            for(int i=0 ; i<9 ; ++i)
                rot.get(i) = r[i];
        }
        else if(elem->ValueStr() == std::string("collider") && collider)
        {
            int col = Collider::NONE;
            elem->QueryIntAttribute("type", &col);

            elem->QueryFloatAttribute("mass", &collider->mass);
            elem->QueryFloatAttribute("restitution", &collider->restitution);
            elem->QueryFloatAttribute("friction", &collider->friction);
            elem->QueryFloatAttribute("rollingFriction", &collider->rollingFriction);

            if(col < Collider::USER_DEFINED)
                collider->type = col;
            else
                collider->type = Collider::NONE;
        }

        elem = elem->NextSiblingElement();
    }
}
开发者ID:williamallas,项目名称:TIMEngine2,代码行数:40,代码来源:XmlSceneLoader.cpp


注:本文中的mat3::get方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。