示例#1
0
文件: ccBox.cpp 项目: eile/trunk
bool ccBox::buildUp()
{
	//upper plane
	ccGLMatrix upperMat;
	upperMat.getTranslation()[2] = static_cast<float>(m_dims.z)/2.0f;
	*this += ccPlane(m_dims.x,m_dims.y,&upperMat);
	//lower plane
	ccGLMatrix lowerMat;
	lowerMat.initFromParameters(-(PointCoordinateType)M_PI,CCVector3(1,0,0),CCVector3(0,0,-m_dims.z/2.0f));
	*this += ccPlane(m_dims.x,m_dims.y,&lowerMat);
	//left plane
	ccGLMatrix leftMat;
	leftMat.initFromParameters(-(PointCoordinateType)(M_PI/2.0),CCVector3(0,1,0),CCVector3(-m_dims.x/2.0f,0,0));
	*this += ccPlane(m_dims.z,m_dims.y,&leftMat);
	//right plane
	ccGLMatrix rightMat;
	rightMat.initFromParameters((PointCoordinateType)(M_PI/2.0),CCVector3(0,1,0),CCVector3(m_dims.x/2.0f,0,0));
	*this += ccPlane(m_dims.z,m_dims.y,&rightMat);
	//front plane
	ccGLMatrix frontMat;
	frontMat.initFromParameters((PointCoordinateType)(M_PI/2.0),CCVector3(1,0,0),CCVector3(0,-m_dims.y/2.0f,0));
	*this += ccPlane(m_dims.x,m_dims.z,&frontMat);
	//back plane
	ccGLMatrix backMat;
	backMat.initFromParameters(-(PointCoordinateType)(M_PI/2.0),CCVector3(1,0,0),CCVector3(0,m_dims.y/2.0f,0));
	*this += ccPlane(m_dims.x,m_dims.z,&backMat);

	return (vertices() && vertices()->size() == 24 && vertices()->hasNormals() && this->size() == 12);
}
示例#2
0
bool ccBox::buildUp()
{
    //Added by yuqiang on 2015/11/04 clear mesh before rebuild
    if (!init(24, false, 12, 6))
    {
        ccLog::Error("[ccBox::buildUp] Init error");
        return false;
    }

	//upper plane
	ccGLMatrix upperMat;
	upperMat.getTranslation()[2] = static_cast<float>(m_dims.z)/2;
	*this += ccPlane(m_dims.x,m_dims.y,&upperMat);
	//lower plane
	ccGLMatrix lowerMat;
	lowerMat.initFromParameters(-static_cast<PointCoordinateType>(M_PI),CCVector3(1,0,0),CCVector3(0,0,-m_dims.z/2));
	*this += ccPlane(m_dims.x,m_dims.y,&lowerMat);
	//left plane
	ccGLMatrix leftMat;
	leftMat.initFromParameters(-static_cast<PointCoordinateType>(M_PI/2.0),CCVector3(0,1,0),CCVector3(-m_dims.x/2,0,0));
	*this += ccPlane(m_dims.z,m_dims.y,&leftMat);
	//right plane
	ccGLMatrix rightMat;
	rightMat.initFromParameters(static_cast<PointCoordinateType>(M_PI/2.0),CCVector3(0,1,0),CCVector3(m_dims.x/2,0,0));
	*this += ccPlane(m_dims.z,m_dims.y,&rightMat);
	//front plane
	ccGLMatrix frontMat;
	frontMat.initFromParameters(static_cast<PointCoordinateType>(M_PI/2.0),CCVector3(1,0,0),CCVector3(0,-m_dims.y/2,0));
	*this += ccPlane(m_dims.x,m_dims.z,&frontMat);
	//back plane
	ccGLMatrix backMat;
	backMat.initFromParameters(-static_cast<PointCoordinateType>(M_PI/2.0),CCVector3(1,0,0),CCVector3(0,m_dims.y/2,0));
	*this += ccPlane(m_dims.x,m_dims.z,&backMat);

	return (vertices() && vertices()->size() == 24 && vertices()->hasNormals() && this->size() == 12);
}