diff options
| -rw-r--r-- | indra/llmath/llvolume.cpp | 19 | ||||
| -rw-r--r-- | indra/llmath/llvolume.h | 2 | 
2 files changed, 21 insertions, 0 deletions
| diff --git a/indra/llmath/llvolume.cpp b/indra/llmath/llvolume.cpp index e725b25332..d1716e1407 100644 --- a/indra/llmath/llvolume.cpp +++ b/indra/llmath/llvolume.cpp @@ -5614,6 +5614,25 @@ void LLVolumeFace::createBinormals()  	}  } +void LLVolumeFace::appendFace(const LLVolumeFace& face, LLMatrix4& transform, LLMatrix4& norm_transform) +{ +	for (U32 i = 0; i < face.mVertices.size(); ++i) +	{ +		VertexData v = face.mVertices[i]; +		v.mPosition *= mat; +		v.mNormal *= norm_transform; + + +		mVertices.push_back(v); +	} + +	U16 offset = mIndices.size(); +	for (U32 i = 0; i < face.mIndices.size(); ++i) +	{ +		mIndices.push_back(face.mIndices[i]+offset); +	} +} +  BOOL LLVolumeFace::createSide(LLVolume* volume, BOOL partial_build)  {  	LLMemType m1(LLMemType::MTYPE_VOLUME); diff --git a/indra/llmath/llvolume.h b/indra/llmath/llvolume.h index b871dad22a..1059c29566 100644 --- a/indra/llmath/llvolume.h +++ b/indra/llmath/llvolume.h @@ -805,6 +805,8 @@ public:  	void createBinormals();  	void makeTriStrip(); +	void appendFace(const LLVolumeFace& face); +  	class VertexData  	{  	public: | 
