Skip to content

Commit 832e3bd

Browse files
committed
SXRenderer now only has a world transform
1 parent 499213f commit 832e3bd

File tree

2 files changed

+6
-13
lines changed

2 files changed

+6
-13
lines changed

include/IECoreRI/private/SXRendererImplementation.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,7 @@ class SXRendererImplementation : public IECore::Renderer
140140
SXExecutor::ShaderVector coshaders;
141141
SXExecutor::ShaderVector lights;
142142

143-
Imath::M44f localTransform;
144-
Imath::M44f parentWorldTransform;
143+
Imath::M44f transform;
145144
};
146145
typedef std::stack<State> StateStack;
147146

src/IECoreRI/SXRendererImplementation.cpp

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
#include "IECore/SplineData.h"
4343
#include "IECore/MatrixAlgo.h"
4444
#include "IECore/Transform.h"
45-
#include "IECore/MatrixTransform.h"
4645
#include "IECore/Group.h"
4746

4847
#include "boost/algorithm/string/case_conv.hpp"
@@ -228,14 +227,9 @@ void IECoreRI::SXRendererImplementation::worldEnd()
228227

229228
void IECoreRI::SXRendererImplementation::transformBegin()
230229
{
231-
Imath::M44f worldTransform = m_stateStack.top().localTransform * m_stateStack.top().parentWorldTransform;
232-
233230
// New push state onto the stack: deep copy flag is false, so we don't create a new SxContext, which will swallow up any
234231
// coordinate systems declared before transformEnd():
235232
m_stateStack.push( State( m_stateStack.top(), false ) );
236-
237-
m_stateStack.top().parentWorldTransform = worldTransform;
238-
m_stateStack.top().localTransform.makeIdentity();
239233
}
240234

241235
void IECoreRI::SXRendererImplementation::transformEnd()
@@ -251,7 +245,7 @@ void IECoreRI::SXRendererImplementation::transformEnd()
251245

252246
void IECoreRI::SXRendererImplementation::setTransform( const Imath::M44f &m )
253247
{
254-
m_stateStack.top().localTransform = m;
248+
m_stateStack.top().transform = m;
255249
}
256250

257251
void IECoreRI::SXRendererImplementation::setTransform( const std::string &coordinateSystem )
@@ -261,7 +255,7 @@ void IECoreRI::SXRendererImplementation::setTransform( const std::string &coordi
261255

262256
Imath::M44f IECoreRI::SXRendererImplementation::getTransform() const
263257
{
264-
return m_stateStack.top().localTransform * m_stateStack.top().parentWorldTransform;
258+
return m_stateStack.top().transform;
265259
}
266260

267261
Imath::M44f IECoreRI::SXRendererImplementation::getTransform( const std::string &coordinateSystem ) const
@@ -272,14 +266,14 @@ Imath::M44f IECoreRI::SXRendererImplementation::getTransform( const std::string
272266

273267
void IECoreRI::SXRendererImplementation::concatTransform( const Imath::M44f &m )
274268
{
275-
m_stateStack.top().localTransform = m * m_stateStack.top().localTransform;
269+
m_stateStack.top().transform = m * m_stateStack.top().transform;
276270
}
277271

278272
void IECoreRI::SXRendererImplementation::coordinateSystem( const std::string &name )
279273
{
280-
Imath::M44f worldTransform = m_stateStack.top().localTransform * m_stateStack.top().parentWorldTransform;
274+
M44f m = m_stateStack.top().transform.transposed();
281275
RtMatrix mm;
282-
convert( worldTransform.transposed(), mm );
276+
convert( m, mm );
283277
SxDefineSpace ( m_stateStack.top().context.get(), name.c_str(), (RtFloat*)&mm[0][0] );
284278
}
285279

0 commit comments

Comments
 (0)