diff options
| author | prep linden <prep@lindenlab.com> | 2011-06-10 10:35:55 -0400 | 
|---|---|---|
| committer | prep linden <prep@lindenlab.com> | 2011-06-10 10:35:55 -0400 | 
| commit | fd51f4d17012eb0a53ca9d8c5ccb8c7b4542fc3a (patch) | |
| tree | bf474a99fa0a7472863167be49d1ac121c27a8e3 | |
| parent | 3ede390b87507cd6a6ef31ac3f1be1906abcb723 (diff) | |
SH-1632 - minor camera and far plane tweak. Also need SH-1665 for full solution (model needs to stay at the origin - currently it translates during scaling).
| -rw-r--r-- | indra/newview/llfloatermodelpreview.cpp | 160 | 
1 files changed, 80 insertions, 80 deletions
| diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index 75fa7b9d1f..4e71aa7fa6 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -2203,87 +2203,87 @@ bool LLModelLoader::isNodeAJoint( domNode* pNode )  //-----------------------------------------------------------------------------  // verifyCount  //----------------------------------------------------------------------------- -bool LLModelPreview::verifyCount( int expected, int result )
 -{
 -	if ( expected != result )
 -	{
 -		llinfos<< "Error: (expected/got)"<<expected<<"/"<<result<<"verts"<<llendl;
 -		return false;
 -	}
 -	return true;
 -}
 +bool LLModelPreview::verifyCount( int expected, int result ) +{ +	if ( expected != result ) +	{ +		llinfos<< "Error: (expected/got)"<<expected<<"/"<<result<<"verts"<<llendl; +		return false; +	} +	return true; +}  //-----------------------------------------------------------------------------  // verifyController  //----------------------------------------------------------------------------- -bool LLModelPreview::verifyController( domController* pController )
 -{	
 -
 -	bool result = true;
 -
 -	domSkin* pSkin = pController->getSkin();
 -
 -	if ( pSkin )
 -	{
 -		xsAnyURI & uri = pSkin->getSource();
 -		domElement* pElement = uri.getElement();
 -
 -		if ( !pElement )
 -		{
 -			llinfos<<"Can't resolve skin source"<<llendl;
 -			return false;
 -		}
 -
 -		daeString type_str = pElement->getTypeName();
 -		if ( stricmp(type_str, "geometry") == 0 )
 -		{	
 -			//Skin is reference directly by geometry and get the vertex count from skin
 -			domSkin::domVertex_weights* pVertexWeights = pSkin->getVertex_weights();
 -			U32 vertexWeightsCount = pVertexWeights->getCount();
 -			domGeometry* pGeometry = (domGeometry*) (domElement*) uri.getElement();
 -			domMesh* pMesh = pGeometry->getMesh();				
 -			
 -			if ( pMesh )
 -			{
 -				//Get vertex count from geometry
 -				domVertices* pVertices = pMesh->getVertices();
 -				if ( !pVertices )
 -				{ 
 -					llinfos<<"No vertices!"<<llendl;
 -					return false;
 -				}
 -
 -				if ( pVertices )
 -				{
 -					xsAnyURI src = pVertices->getInput_array()[0]->getSource();
 -					domSource* pSource = (domSource*) (domElement*) src.getElement();
 -					U32 verticesCount = pSource->getTechnique_common()->getAccessor()->getCount();
 -					result = verifyCount( verticesCount, vertexWeightsCount );
 -					if ( !result )
 -					{
 -						return result;
 -					}
 -				}
 -			}	
 -
 -			U32 vcountCount = (U32) pVertexWeights->getVcount()->getValue().getCount();
 -			result = verifyCount( vcountCount, vertexWeightsCount );	
 -			if ( !result )
 -			{
 -				return result;
 -			}
 -
 -			domInputLocalOffset_Array& inputs = pVertexWeights->getInput_array();
 -			U32 sum = 0;
 -			for (size_t i=0; i<vcountCount; i++)
 -			{
 -				sum += pVertexWeights->getVcount()->getValue()[i];
 -			}
 -			result = verifyCount( sum * inputs.getCount(), (domInt) pVertexWeights->getV()->getValue().getCount() );
 -		}
 -	}
 -	
 -	return result;
 -}
 +bool LLModelPreview::verifyController( domController* pController ) +{	 + +	bool result = true; + +	domSkin* pSkin = pController->getSkin(); + +	if ( pSkin ) +	{ +		xsAnyURI & uri = pSkin->getSource(); +		domElement* pElement = uri.getElement(); + +		if ( !pElement ) +		{ +			llinfos<<"Can't resolve skin source"<<llendl; +			return false; +		} + +		daeString type_str = pElement->getTypeName(); +		if ( stricmp(type_str, "geometry") == 0 ) +		{	 +			//Skin is reference directly by geometry and get the vertex count from skin +			domSkin::domVertex_weights* pVertexWeights = pSkin->getVertex_weights(); +			U32 vertexWeightsCount = pVertexWeights->getCount(); +			domGeometry* pGeometry = (domGeometry*) (domElement*) uri.getElement(); +			domMesh* pMesh = pGeometry->getMesh();				 +			 +			if ( pMesh ) +			{ +				//Get vertex count from geometry +				domVertices* pVertices = pMesh->getVertices(); +				if ( !pVertices ) +				{  +					llinfos<<"No vertices!"<<llendl; +					return false; +				} + +				if ( pVertices ) +				{ +					xsAnyURI src = pVertices->getInput_array()[0]->getSource(); +					domSource* pSource = (domSource*) (domElement*) src.getElement(); +					U32 verticesCount = pSource->getTechnique_common()->getAccessor()->getCount(); +					result = verifyCount( verticesCount, vertexWeightsCount ); +					if ( !result ) +					{ +						return result; +					} +				} +			}	 + +			U32 vcountCount = (U32) pVertexWeights->getVcount()->getValue().getCount(); +			result = verifyCount( vcountCount, vertexWeightsCount );	 +			if ( !result ) +			{ +				return result; +			} + +			domInputLocalOffset_Array& inputs = pVertexWeights->getInput_array(); +			U32 sum = 0; +			for (size_t i=0; i<vcountCount; i++) +			{ +				sum += pVertexWeights->getVcount()->getValue()[i]; +			} +			result = verifyCount( sum * inputs.getCount(), (domInt) pVertexWeights->getV()->getValue().getCount() ); +		} +	} +	 +	return result; +}  //-----------------------------------------------------------------------------  // extractTranslation() @@ -3372,7 +3372,7 @@ void LLModelPreview::resetPreviewTarget()  		mPreviewScale = (mModelLoader->mExtents[1] - mModelLoader->mExtents[0]) * 0.5f;  	} -	setPreviewTarget(mPreviewScale.magVec()*2.f); +	setPreviewTarget(mPreviewScale.magVec()*10.f);  }  void LLModelPreview::generateNormals() @@ -4590,7 +4590,7 @@ BOOL LLModelPreview::render()  	LLVector3 target_pos = mPreviewTarget+offset;  	F32 z_near = 0.001f; -	F32 z_far = mCameraDistance+mPreviewScale.magVec()+mCameraOffset.magVec(); +	F32 z_far = mCameraDistance*10.0f+mPreviewScale.magVec()+mCameraOffset.magVec();  	if (skin_weight)  	{ | 
