mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-19 20:24:49 +00:00
cleanups for decal and mesh road, and the meshroad and river editors
This commit is contained in:
parent
d11a942f6d
commit
1b548e5304
|
|
@ -1265,7 +1265,7 @@ void DecalRoad::_generateEdges()
|
|||
//
|
||||
for ( U32 i = 0; i < mEdges.size(); i++ )
|
||||
{
|
||||
RoadEdge *edge = &mEdges[i];
|
||||
edge = &mEdges[i];
|
||||
edge->p0 = edge->p1 - edge->rvec * edge->width * 0.5f;
|
||||
edge->p2 = edge->p1 + edge->rvec * edge->width * 0.5f;
|
||||
_getTerrainHeight( edge->p0 );
|
||||
|
|
@ -1467,20 +1467,20 @@ void DecalRoad::_captureVerts()
|
|||
for ( U32 i = 0; i < clipperList.size(); i++ )
|
||||
{
|
||||
ClippedPolyList *clipper = &clipperList[i];
|
||||
RoadEdge &edge = mEdges[i];
|
||||
RoadEdge &nextEdge = mEdges[i+1];
|
||||
edge = &mEdges[i];
|
||||
nextEdge = &mEdges[i+1];
|
||||
|
||||
VectorF segFvec = nextEdge.p1 - edge.p1;
|
||||
VectorF segFvec = nextEdge->p1 - edge->p1;
|
||||
F32 segLen = segFvec.len();
|
||||
segFvec.normalize();
|
||||
|
||||
F32 texLen = segLen / mTextureLength;
|
||||
texEnd = texStart + texLen;
|
||||
|
||||
BiQuadToSqr quadToSquare( Point2F( edge.p0.x, edge.p0.y ),
|
||||
Point2F( edge.p2.x, edge.p2.y ),
|
||||
Point2F( nextEdge.p2.x, nextEdge.p2.y ),
|
||||
Point2F( nextEdge.p0.x, nextEdge.p0.y ) );
|
||||
BiQuadToSqr quadToSquare( Point2F( edge->p0.x, edge->p0.y ),
|
||||
Point2F( edge->p2.x, edge->p2.y ),
|
||||
Point2F( nextEdge->p2.x, nextEdge->p2.y ),
|
||||
Point2F( nextEdge->p0.x, nextEdge->p0.y ) );
|
||||
|
||||
//
|
||||
if ( i % mSegmentsPerBatch == 0 )
|
||||
|
|
@ -1572,12 +1572,12 @@ void DecalRoad::_captureVerts()
|
|||
Box3F box;
|
||||
for ( U32 i = 0; i < mBatches.size(); i++ )
|
||||
{
|
||||
const RoadBatch &batch = mBatches[i];
|
||||
batch = &mBatches[i];
|
||||
|
||||
if ( i == 0 )
|
||||
box = batch.bounds;
|
||||
box = batch->bounds;
|
||||
else
|
||||
box.intersect( batch.bounds );
|
||||
box.intersect( batch->bounds );
|
||||
}
|
||||
|
||||
mWorldBox = box;
|
||||
|
|
|
|||
|
|
@ -1132,11 +1132,11 @@ void GuiMeshRoadEditorCtrl::setSelectedNode( S32 node )
|
|||
mSelNode = node;
|
||||
if ( mSelNode != -1 )
|
||||
{
|
||||
const MeshRoadNode &node = mSelRoad->mNodes[mSelNode];
|
||||
const MeshRoadNode &curNode = mSelRoad->mNodes[mSelNode];
|
||||
|
||||
MatrixF objMat = mSelRoad->getNodeTransform(mSelNode);
|
||||
Point3F objScale( node.width, 1.0f, node.depth );
|
||||
Point3F worldPos = node.point;
|
||||
Point3F objScale(curNode.width, 1.0f, curNode.depth );
|
||||
Point3F worldPos = curNode.point;
|
||||
|
||||
mGizmo->set( objMat, worldPos, objScale );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1277,11 +1277,11 @@ void GuiRiverEditorCtrl::setSelectedNode( S32 node )
|
|||
mSelNode = node;
|
||||
if ( mSelNode != -1 )
|
||||
{
|
||||
const RiverNode &node = mSelRiver->mNodes[mSelNode];
|
||||
const RiverNode &curNode = mSelRiver->mNodes[mSelNode];
|
||||
|
||||
MatrixF objMat = mSelRiver->getNodeTransform(mSelNode);
|
||||
Point3F objScale( node.width, 1.0f, node.depth );
|
||||
Point3F worldPos = node.point;
|
||||
Point3F objScale(curNode.width, 1.0f, curNode.depth );
|
||||
Point3F worldPos = curNode.point;
|
||||
|
||||
mGizmo->set( objMat, worldPos, objScale );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1681,54 +1681,40 @@ void MeshRoad::_generateSlices()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Calculate uvec, fvec, and rvec for all slices
|
||||
//
|
||||
|
||||
|
||||
MatrixF mat(true);
|
||||
|
||||
for ( U32 i = 0; i < mSlices.size(); i++ )
|
||||
{
|
||||
calcSliceTransform( i, mat );
|
||||
mat.getColumn( 0, &mSlices[i].rvec );
|
||||
mat.getColumn( 1, &mSlices[i].fvec );
|
||||
mat.getColumn( 2, &mSlices[i].uvec );
|
||||
}
|
||||
|
||||
//
|
||||
// Calculate p0/p2/pb0/pb2 for all slices
|
||||
//
|
||||
for ( U32 i = 0; i < mSlices.size(); i++ )
|
||||
{
|
||||
MeshRoadSlice *slice = &mSlices[i];
|
||||
slice->p0 = slice->p1 - slice->rvec * slice->width * 0.5f;
|
||||
slice->p2 = slice->p1 + slice->rvec * slice->width * 0.5f;
|
||||
slice->pb0 = slice->p0 - slice->uvec * slice->depth;
|
||||
slice->pb2 = slice->p2 - slice->uvec * slice->depth;
|
||||
}
|
||||
|
||||
// Generate the object/world bounds
|
||||
Box3F box;
|
||||
for ( U32 i = 0; i < mSlices.size(); i++ )
|
||||
{
|
||||
const MeshRoadSlice &slice = mSlices[i];
|
||||
// Calculate uvec, fvec, and rvec for all slices
|
||||
calcSliceTransform( i, mat );
|
||||
MeshRoadSlice *slicePtr = &mSlices[i];
|
||||
mat.getColumn( 0, &slicePtr->rvec );
|
||||
mat.getColumn( 1, &slicePtr->fvec );
|
||||
mat.getColumn( 2, &slicePtr->uvec );
|
||||
|
||||
// Calculate p0/p2/pb0/pb2 for all slices
|
||||
slicePtr->p0 = slicePtr->p1 - slicePtr->rvec * slicePtr->width * 0.5f;
|
||||
slicePtr->p2 = slicePtr->p1 + slicePtr->rvec * slicePtr->width * 0.5f;
|
||||
slicePtr->pb0 = slicePtr->p0 - slicePtr->uvec * slicePtr->depth;
|
||||
slicePtr->pb2 = slicePtr->p2 - slicePtr->uvec * slicePtr->depth;
|
||||
|
||||
// Generate or extend the object/world bounds
|
||||
if ( i == 0 )
|
||||
{
|
||||
box.minExtents = slice.p0;
|
||||
box.maxExtents = slice.p2;
|
||||
box.extend( slice.pb0 );
|
||||
box.extend( slice.pb2 );
|
||||
box.minExtents = slicePtr->p0;
|
||||
box.maxExtents = slicePtr->p2;
|
||||
box.extend(slicePtr->pb0 );
|
||||
box.extend(slicePtr->pb2 );
|
||||
}
|
||||
else
|
||||
{
|
||||
box.extend( slice.p0 );
|
||||
box.extend( slice.p2 );
|
||||
box.extend( slice.pb0 );
|
||||
box.extend( slice.pb2 );
|
||||
box.extend(slicePtr->p0 );
|
||||
box.extend(slicePtr->p2 );
|
||||
box.extend(slicePtr->pb0 );
|
||||
box.extend(slicePtr->pb2 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mWorldBox = box;
|
||||
resetObjectBox();
|
||||
|
|
|
|||
Loading…
Reference in a new issue