Unstaged changes cleanup. Further vectorization. Change in binormal/bitangent calculation.
This commit is contained in:
@@ -103,10 +103,10 @@ public:
|
||||
glTexCoordPointer(2,GL_FLOAT, LLVertexBuffer::sTypeSize[TYPE_TEXCOORD1], (void*)(base + mOffsets[TYPE_TEXCOORD1]));
|
||||
glClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
if (data_mask & MAP_BINORMAL)
|
||||
if (data_mask & MAP_TANGENT)
|
||||
{
|
||||
glClientActiveTextureARB(GL_TEXTURE2_ARB);
|
||||
glTexCoordPointer(3,GL_FLOAT, LLVertexBuffer::sTypeSize[TYPE_BINORMAL], (void*)(base + mOffsets[TYPE_BINORMAL]));
|
||||
glTexCoordPointer(3,GL_FLOAT, LLVertexBuffer::sTypeSize[TYPE_TANGENT], (void*)(base + mOffsets[TYPE_TANGENT]));
|
||||
glClientActiveTextureARB(GL_TEXTURE0_ARB);
|
||||
}
|
||||
if (data_mask & MAP_TEXCOORD0)
|
||||
@@ -942,8 +942,8 @@ void LLVOSurfacePatch::getGeomSizesEast(const S32 stride, const S32 east_stride,
|
||||
}
|
||||
}
|
||||
|
||||
BOOL LLVOSurfacePatch::lineSegmentIntersect(const LLVector3& start, const LLVector3& end, S32 face, BOOL pick_transparent, S32 *face_hitp,
|
||||
LLVector3* intersection,LLVector2* tex_coord, LLVector3* normal, LLVector3* bi_normal)
|
||||
BOOL LLVOSurfacePatch::lineSegmentIntersect(const LLVector4a& start, const LLVector4a& end, S32 face, BOOL pick_transparent, S32 *face_hitp,
|
||||
LLVector4a* intersection,LLVector2* tex_coord, LLVector4a* normal, LLVector4a* tangent)
|
||||
|
||||
{
|
||||
|
||||
@@ -952,7 +952,9 @@ BOOL LLVOSurfacePatch::lineSegmentIntersect(const LLVector3& start, const LLVect
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
LLVector3 delta = end-start;
|
||||
LLVector4a da;
|
||||
da.setSub(end, start);
|
||||
LLVector3 delta(da.getF32ptr());
|
||||
|
||||
LLVector3 pdelta = delta;
|
||||
pdelta.mV[2] = 0;
|
||||
@@ -961,7 +963,9 @@ BOOL LLVOSurfacePatch::lineSegmentIntersect(const LLVector3& start, const LLVect
|
||||
|
||||
F32 tdelta = 1.f/plength;
|
||||
|
||||
LLVector3 origin = start - mRegionp->getOriginAgent();
|
||||
LLVector3 v_start(start.getF32ptr());
|
||||
|
||||
LLVector3 origin = v_start - mRegionp->getOriginAgent();
|
||||
|
||||
if (mRegionp->getLandHeightRegion(origin) > origin.mV[2])
|
||||
{
|
||||
@@ -1016,12 +1020,12 @@ BOOL LLVOSurfacePatch::lineSegmentIntersect(const LLVector3& start, const LLVect
|
||||
{
|
||||
sample.mV[2] = mRegionp->getLandHeightRegion(sample);
|
||||
}
|
||||
*intersection = sample + mRegionp->getOriginAgent();
|
||||
intersection->load3((sample + mRegionp->getOriginAgent()).mV);
|
||||
}
|
||||
|
||||
if (normal)
|
||||
{
|
||||
*normal = mRegionp->getLand().resolveNormalGlobal(mRegionp->getPosGlobalFromRegion(sample));
|
||||
normal->load3((mRegionp->getLand().resolveNormalGlobal(mRegionp->getPosGlobalFromRegion(sample))).mV);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
Reference in New Issue
Block a user