mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-09 23:40:42 +00:00
Merge branch 'development' into EngineAPI-Refactor
This commit is contained in:
commit
3a71c75596
1937 changed files with 102332 additions and 70549 deletions
|
|
@ -215,27 +215,27 @@ void ScenePolyhedralObject< Base, P >::unpackUpdate( NetConnection* connection,
|
|||
// Read planes.
|
||||
|
||||
const U32 numPlanes = stream->readInt( 8 );
|
||||
mPolyhedron.planeList.setSize( numPlanes );
|
||||
mPolyhedron.mPlaneList.setSize( numPlanes );
|
||||
|
||||
for( U32 i = 0; i < numPlanes; ++ i )
|
||||
mathRead( *stream, &mPolyhedron.planeList[ i ] );
|
||||
mathRead( *stream, &mPolyhedron.mPlaneList[ i ] );
|
||||
|
||||
// Read points.
|
||||
|
||||
const U32 numPoints = stream->readInt( 8 );
|
||||
mPolyhedron.pointList.setSize( numPoints );
|
||||
mPolyhedron.mPointList.setSize( numPoints );
|
||||
|
||||
for( U32 i = 0; i < numPoints; ++ i )
|
||||
mathRead( *stream, &mPolyhedron.pointList[ i ] );
|
||||
mathRead( *stream, &mPolyhedron.mPointList[ i ] );
|
||||
|
||||
// Read edges.
|
||||
|
||||
const U32 numEdges = stream->readInt( 8 );
|
||||
mPolyhedron.edgeList.setSize( numEdges );
|
||||
mPolyhedron.mEdgeList.setSize( numEdges );
|
||||
|
||||
for( U32 i = 0; i < numEdges; ++ i )
|
||||
{
|
||||
typename PolyhedronType::EdgeType& edge = mPolyhedron.edgeList[ i ];
|
||||
typename PolyhedronType::EdgeType& edge = mPolyhedron.mEdgeList[ i ];
|
||||
|
||||
edge.face[ 0 ] = stream->readInt( 8 );
|
||||
edge.face[ 1 ] = stream->readInt( 8 );
|
||||
|
|
@ -344,7 +344,7 @@ bool ScenePolyhedralObject< Base, P >::_setPlane( void* object, const char* inde
|
|||
&plane.d
|
||||
);
|
||||
|
||||
obj->mPolyhedron.planeList.push_back( plane );
|
||||
obj->mPolyhedron.mPlaneList.push_back( plane );
|
||||
obj->setMaskBits( PolyMask );
|
||||
obj->mIsBox = false;
|
||||
|
||||
|
|
@ -366,7 +366,7 @@ bool ScenePolyhedralObject< Base, P >::_setPoint( void* object, const char* inde
|
|||
&point[ 2 ]
|
||||
);
|
||||
|
||||
obj->mPolyhedron.pointList.push_back( point );
|
||||
obj->mPolyhedron.mPointList.push_back( point );
|
||||
obj->setMaskBits( PolyMask );
|
||||
obj->mIsBox = false;
|
||||
|
||||
|
|
@ -389,7 +389,7 @@ bool ScenePolyhedralObject< Base, P >::_setEdge( void* object, const char* index
|
|||
&edge.vertex[ 1 ]
|
||||
);
|
||||
|
||||
obj->mPolyhedron.edgeList.push_back( edge );
|
||||
obj->mPolyhedron.mEdgeList.push_back( edge );
|
||||
obj->setMaskBits( PolyMask );
|
||||
obj->mIsBox = false;
|
||||
|
||||
|
|
|
|||
|
|
@ -315,20 +315,20 @@ void CubeReflector::updateReflection( const ReflectParams ¶ms )
|
|||
const GFXFormat reflectFormat = REFLECTMGR->getReflectFormat();
|
||||
|
||||
if ( texResize ||
|
||||
cubemap.isNull() ||
|
||||
cubemap->getFormat() != reflectFormat )
|
||||
mCubemap.isNull() ||
|
||||
mCubemap->getFormat() != reflectFormat )
|
||||
{
|
||||
cubemap = GFX->createCubemap();
|
||||
cubemap->initDynamic( texDim, reflectFormat );
|
||||
mCubemap = GFX->createCubemap();
|
||||
mCubemap->initDynamic( texDim, reflectFormat );
|
||||
}
|
||||
|
||||
GFXTexHandle depthBuff = LightShadowMap::_getDepthTarget( texDim, texDim );
|
||||
mDepthBuff = LightShadowMap::_getDepthTarget( texDim, texDim );
|
||||
|
||||
if ( renderTarget.isNull() )
|
||||
renderTarget = GFX->allocRenderToTextureTarget();
|
||||
if ( mRenderTarget.isNull() )
|
||||
mRenderTarget = GFX->allocRenderToTextureTarget();
|
||||
|
||||
GFX->pushActiveRenderTarget();
|
||||
renderTarget->attachTexture( GFXTextureTarget::DepthStencil, depthBuff );
|
||||
mRenderTarget->attachTexture( GFXTextureTarget::DepthStencil, mDepthBuff );
|
||||
|
||||
|
||||
F32 oldVisibleDist = gClientSceneGraph->getVisibleDistance();
|
||||
|
|
@ -407,8 +407,8 @@ void CubeReflector::updateFace( const ReflectParams ¶ms, U32 faceidx )
|
|||
|
||||
GFX->setWorldMatrix(matView);
|
||||
GFX->clearTextureStateImmediate(0);
|
||||
renderTarget->attachTexture( GFXTextureTarget::Color0, cubemap, faceidx );
|
||||
GFX->setActiveRenderTarget( renderTarget );
|
||||
mRenderTarget->attachTexture( GFXTextureTarget::Color0, mCubemap, faceidx );
|
||||
GFX->setActiveRenderTarget(mRenderTarget);
|
||||
GFX->clear( GFXClearStencil | GFXClearTarget | GFXClearZBuffer, gCanvasClearColor, 1.0f, 0 );
|
||||
|
||||
SceneRenderState reflectRenderState
|
||||
|
|
@ -427,7 +427,7 @@ void CubeReflector::updateFace( const ReflectParams ¶ms, U32 faceidx )
|
|||
LIGHTMGR->unregisterAllLights();
|
||||
|
||||
// Clean up.
|
||||
renderTarget->resolve();
|
||||
mRenderTarget->resolve();
|
||||
}
|
||||
|
||||
F32 CubeReflector::calcFaceScore( const ReflectParams ¶ms, U32 faceidx )
|
||||
|
|
@ -746,18 +746,18 @@ void PlaneReflector::setGFXMatrices( const MatrixF &camTrans )
|
|||
MatrixF relCamTrans = invObjTrans * camTrans;
|
||||
|
||||
MatrixF camReflectTrans = getCameraReflection( relCamTrans );
|
||||
MatrixF camTrans = mObject->getRenderTransform() * camReflectTrans;
|
||||
camTrans.inverse();
|
||||
MatrixF objTrans = mObject->getRenderTransform() * camReflectTrans;
|
||||
objTrans.inverse();
|
||||
|
||||
GFX->setWorldMatrix( camTrans );
|
||||
GFX->setWorldMatrix(objTrans);
|
||||
|
||||
// use relative reflect transform for modelview since clip plane is in object space
|
||||
camTrans = camReflectTrans;
|
||||
camTrans.inverse();
|
||||
objTrans = camReflectTrans;
|
||||
objTrans.inverse();
|
||||
|
||||
// set new projection matrix
|
||||
gClientSceneGraph->setNonClipProjection( (MatrixF&) GFX->getProjectionMatrix() );
|
||||
MatrixF clipProj = getFrustumClipProj( camTrans );
|
||||
MatrixF clipProj = getFrustumClipProj(objTrans);
|
||||
GFX->setProjectionMatrix( clipProj );
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -153,16 +153,16 @@ public:
|
|||
virtual void unregisterReflector();
|
||||
virtual void updateReflection( const ReflectParams ¶ms );
|
||||
|
||||
GFXCubemap* getCubemap() const { return cubemap; }
|
||||
GFXCubemap* getCubemap() const { return mCubemap; }
|
||||
|
||||
void updateFace( const ReflectParams ¶ms, U32 faceidx );
|
||||
F32 calcFaceScore( const ReflectParams ¶ms, U32 faceidx );
|
||||
|
||||
protected:
|
||||
|
||||
GFXTexHandle depthBuff;
|
||||
GFXTextureTargetRef renderTarget;
|
||||
GFXCubemapHandle cubemap;
|
||||
GFXTexHandle mDepthBuff;
|
||||
GFXTextureTargetRef mRenderTarget;
|
||||
GFXCubemapHandle mCubemap;
|
||||
U32 mLastTexSize;
|
||||
|
||||
class CubeFaceReflector : public ReflectorBase
|
||||
|
|
|
|||
|
|
@ -60,26 +60,26 @@ static Box3F sBoundingBox;
|
|||
|
||||
SceneContainer::Link::Link()
|
||||
{
|
||||
next = prev = this;
|
||||
mNext = mPrev = this;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void SceneContainer::Link::unlink()
|
||||
{
|
||||
next->prev = prev;
|
||||
prev->next = next;
|
||||
next = prev = this;
|
||||
mNext->mPrev = mPrev;
|
||||
mPrev->mNext = mNext;
|
||||
mNext = mPrev = this;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void SceneContainer::Link::linkAfter(SceneContainer::Link* ptr)
|
||||
{
|
||||
next = ptr->next;
|
||||
next->prev = this;
|
||||
prev = ptr;
|
||||
prev->next = this;
|
||||
mNext = ptr->mNext;
|
||||
mNext->mPrev = this;
|
||||
mPrev = ptr;
|
||||
mPrev->mNext = this;
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
|
@ -93,8 +93,8 @@ SceneContainer::SceneContainer()
|
|||
mSearchInProgress = false;
|
||||
mCurrSeqKey = 0;
|
||||
|
||||
mEnd.next = mEnd.prev = &mStart;
|
||||
mStart.next = mStart.prev = &mEnd;
|
||||
mEnd.mNext = mEnd.mPrev = &mStart;
|
||||
mStart.mNext = mStart.mPrev = &mEnd;
|
||||
|
||||
mBinArray = new SceneObjectRef[csmNumBins * csmNumBins];
|
||||
for (U32 i = 0; i < csmNumBins; i++)
|
||||
|
|
@ -586,10 +586,10 @@ void SceneContainer::polyhedronFindObjects(const Polyhedron& polyhedron, U32 mas
|
|||
Box3F box;
|
||||
box.minExtents.set(1e9, 1e9, 1e9);
|
||||
box.maxExtents.set(-1e9, -1e9, -1e9);
|
||||
for (i = 0; i < polyhedron.pointList.size(); i++)
|
||||
for (i = 0; i < polyhedron.mPointList.size(); i++)
|
||||
{
|
||||
box.minExtents.setMin(polyhedron.pointList[i]);
|
||||
box.maxExtents.setMax(polyhedron.pointList[i]);
|
||||
box.minExtents.setMin(polyhedron.mPointList[i]);
|
||||
box.maxExtents.setMax(polyhedron.mPointList[i]);
|
||||
}
|
||||
|
||||
if ( mask == WaterObjectType ||
|
||||
|
|
@ -760,7 +760,7 @@ void SceneContainer::findObjectList( const Frustum &frustum, U32 mask, Vector<Sc
|
|||
|
||||
void SceneContainer::findObjectList( U32 mask, Vector<SceneObject*> *outFound )
|
||||
{
|
||||
for ( Link* itr = mStart.next; itr != &mEnd; itr = itr->next )
|
||||
for ( Link* itr = mStart.mNext; itr != &mEnd; itr = itr->mNext)
|
||||
{
|
||||
SceneObject* ptr = static_cast<SceneObject*>( itr );
|
||||
if ( ( ptr->getTypeMask() & mask ) != 0 )
|
||||
|
|
@ -772,7 +772,7 @@ void SceneContainer::findObjectList( U32 mask, Vector<SceneObject*> *outFound )
|
|||
|
||||
void SceneContainer::findObjects( U32 mask, FindCallback callback, void *key )
|
||||
{
|
||||
for (Link* itr = mStart.next; itr != &mEnd; itr = itr->next) {
|
||||
for (Link* itr = mStart.mNext; itr != &mEnd; itr = itr->mNext) {
|
||||
SceneObject* ptr = static_cast<SceneObject*>(itr);
|
||||
if ((ptr->getTypeMask() & mask) != 0 && !ptr->mCollisionCount)
|
||||
(*callback)(ptr,key);
|
||||
|
|
@ -859,10 +859,10 @@ bool SceneContainer::_castRay( U32 type, const Point3F& start, const Point3F& en
|
|||
F32 currentT = 2.0;
|
||||
mCurrSeqKey++;
|
||||
|
||||
SceneObjectRef* chain = mOverflowBin.nextInBin;
|
||||
while (chain)
|
||||
SceneObjectRef* overflowChain = mOverflowBin.nextInBin;
|
||||
while (overflowChain)
|
||||
{
|
||||
SceneObject* ptr = chain->object;
|
||||
SceneObject* ptr = overflowChain->object;
|
||||
if (ptr->getContainerSeqKey() != mCurrSeqKey)
|
||||
{
|
||||
ptr->setContainerSeqKey(mCurrSeqKey);
|
||||
|
|
@ -897,7 +897,7 @@ bool SceneContainer::_castRay( U32 type, const Point3F& start, const Point3F& en
|
|||
}
|
||||
}
|
||||
}
|
||||
chain = chain->nextInBin;
|
||||
overflowChain = overflowChain->nextInBin;
|
||||
}
|
||||
|
||||
// These are just for rasterizing the line against the grid. We want the x coord
|
||||
|
|
@ -1138,7 +1138,7 @@ bool SceneContainer::collideBox(const Point3F &start, const Point3F &end, U32 ma
|
|||
AssertFatal( info->userData == NULL, "SceneContainer::collideBox - RayInfo->userData cannot be used here!" );
|
||||
|
||||
F32 currentT = 2;
|
||||
for (Link* itr = mStart.next; itr != &mEnd; itr = itr->next)
|
||||
for (Link* itr = mStart.mNext; itr != &mEnd; itr = itr->mNext)
|
||||
{
|
||||
SceneObject* ptr = static_cast<SceneObject*>(itr);
|
||||
if (ptr->getTypeMask() & mask && !ptr->mCollisionCount)
|
||||
|
|
|
|||
|
|
@ -151,8 +151,8 @@ class SceneContainer
|
|||
|
||||
struct Link
|
||||
{
|
||||
Link* next;
|
||||
Link* prev;
|
||||
Link* mNext;
|
||||
Link* mPrev;
|
||||
Link();
|
||||
void unlink();
|
||||
void linkAfter(Link* ptr);
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ void Path::onRemove()
|
|||
/// Sort the markers objects into sequence order
|
||||
void Path::sortMarkers()
|
||||
{
|
||||
dQsort(objectList.address(), objectList.size(), sizeof(SimObject*), cmpPathObject);
|
||||
dQsort(mObjectList.address(), mObjectList.size(), sizeof(SimObject*), cmpPathObject);
|
||||
}
|
||||
|
||||
void Path::updatePath()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue