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


C++ BoundingBox::add方法代码示例

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


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

示例1:

void            Winding::getBounds(BoundingBox& bounds) const
{
    bounds.reset();
    unsigned    x;

    for (x=0; x<m_NumPoints; x++)
    {
        bounds.add(m_Points[x]);
    }
}
开发者ID:sbenfold,项目名称:zhlt-linux,代码行数:10,代码来源:winding.cpp

示例2: VectorCopy

void            Winding::getBounds(vec3_t& mins, vec3_t& maxs) const
{
    BoundingBox     bounds;
    unsigned    x;

    for (x=0; x<m_NumPoints; x++)
    {
        bounds.add(m_Points[x]);
    }
    VectorCopy(bounds.m_Mins, mins);
    VectorCopy(bounds.m_Maxs, maxs);
}
开发者ID:sbenfold,项目名称:zhlt-linux,代码行数:12,代码来源:winding.cpp

示例3: boundingBox

//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
BoundingBox Scene::boundingBox() const
{
    BoundingBox bb;

    size_t numModels = m_models.size();
    size_t i;
    for (i = 0; i < numModels; i++)
    {
        const Model* model = m_models.at(i);
        CVF_ASSERT(model);

        bb.add(model->boundingBox());
    }

    return bb;
}
开发者ID:,项目名称:,代码行数:19,代码来源:

示例4: transform

//--------------------------------------------------------------------------------------------------
/// Transform the min and max coordinate with the given transformation matrix
//--------------------------------------------------------------------------------------------------
void BoundingBox::transform(const Mat4d& matrix)
{
	// Check if box is invalid, and don't transform if so
	if (!isValid()) return;

	BoundingBox newBox;
    newBox.reset();

    Vec3d node;
    
    node.set(m_min.x(), m_min.y(), m_min.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_max.x(), m_min.y(), m_min.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_max.x(), m_max.y(), m_min.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_min.x(), m_max.y(), m_min.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_min.x(), m_min.y(), m_max.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_max.x(), m_min.y(), m_max.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_max.x(), m_max.y(), m_max.z());
    node.transformPoint(matrix);
    newBox.add(node);

    node.set(m_min.x(), m_max.y(), m_max.z());
    node.transformPoint(matrix);
    newBox.add(node);

	*this = newBox;
}
开发者ID:CeetronAS,项目名称:CustomVisualizationCore,代码行数:47,代码来源:cvfBoundingBox.cpp

示例5:

Sphere::Sphere( bool fullSphere, byte numSubDiv, float dim )
{
	setPrimitiveType( PrimitiveType::Triangles );
	
	VertexData position;
	buildGeometry( fullSphere, numSubDiv, position, dim );
	
	// Build Texture Coordinates.
	BoundingBox box;
	
	for( size_t i = 0; i < position.size(); i++ )
	{
		const Vector3& v = position[i];
		box.add(v);
	}

	Vector3 center = box.getCenter();

	std::vector<Vector3> texCoords;

	for( size_t i = 0; i < position.size(); i++ )
	{
		const Vector3& vert = position[i];
		Vector3 d = vert-center;
		d.normalize();

		// Conveert to spherical coordinates.
		//float t = d.z / sqrt(d.x*d.x+d.y*d.y+d.z*d.z);
		//float delta = acos(t);
		//float phi = atan2(d.y, d.x);

		//float u = delta / Math::PI;
		//float v = phi / 2*Math::PI;
		float u = std::asin(d.x) / PI + 0.5f;
		float v = std::asin(d.y) / PI + 0.5f;

		texCoords.push_back( Vector2(u, v) );
	}

	gb->set( VertexAttribute::Position, position );
	gb->set( VertexAttribute::TexCoord0, texCoords );
}
开发者ID:,项目名称:,代码行数:42,代码来源:


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