Skip to content

Commit 7994df4

Browse files
committed
Merge branch 'RB-10.4'
2 parents 93120b3 + 4267b66 commit 7994df4

File tree

8 files changed

+467
-80
lines changed

8 files changed

+467
-80
lines changed

Changes

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,43 @@ Breaking Changes
2929
- Primitive : Changed `variableIndexedView()` return type from `boost::optional` to `std::optional`.
3030
- MeshAlgo `distributePoints()` : Bug fixes mean subtle changes to the resulting points.
3131

32-
10.4.x.x (relative to 10.4.7.1)
32+
10.4.x.x (relative to 10.4.9.0)
3333
========
3434

35+
10.4.9.0 (relative to 10.4.8.0)
36+
========
37+
38+
Improvements
39+
------------
40+
41+
- USDScene :
42+
- Improved performance of `setNames( includeDescendantSets = True )` substantially for compositions with instanced prims.
43+
- Improved performance of `readSet( includeDescendantSets = True )` substantially for compositions with instanced prims.
44+
- Improved performance when reading materials from instanced prims.
45+
- Added loading of `UsdGeomCube` prims (as MeshPrimitives).
46+
- SceneInterface : Added `_copy` argument to Python bindings for `readAttribute()`, `readTransform()` and `readObject()`. Pass `_copy = False` to receive the original constant result directly instead of a mutable copy. Use with care (typically only for debugging and testing)!
47+
- TypedData : Added move constructors.
48+
49+
Fixes
50+
-----
51+
52+
- USDScene :
53+
- Fixed loading of `__cameras`, `__lights` and `usd:pointInstancers` sets from within instanced prims.
54+
- Fixed cancellation when reading `UsdGeomSphere` prims.
55+
56+
10.4.8.0 (relative to 10.4.7.1)
57+
========
58+
59+
Improvements
60+
------------
61+
62+
- USDScene : Exceptions thrown by `child()` are now more descriptive.
63+
64+
Fixes
65+
-----
66+
67+
- USDScene : Fixed `hasChild()` bug which considered prims to be children when `child()` and `childNames()` did not.
68+
3569
10.4.7.1 (relative to 10.4.7.0)
3670
========
3771

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
//////////////////////////////////////////////////////////////////////////
2+
//
3+
// Copyright (c) 2023, Cinesite VFX Ltd. All rights reserved.
4+
//
5+
// Redistribution and use in source and binary forms, with or without
6+
// modification, are permitted provided that the following conditions are
7+
// met:
8+
//
9+
// * Redistributions of source code must retain the above copyright
10+
// notice, this list of conditions and the following disclaimer.
11+
//
12+
// * Redistributions in binary form must reproduce the above copyright
13+
// notice, this list of conditions and the following disclaimer in the
14+
// documentation and/or other materials provided with the distribution.
15+
//
16+
// * Neither the name of Image Engine Design nor the names of any
17+
// other contributors to this software may be used to endorse or
18+
// promote products derived from this software without specific prior
19+
// written permission.
20+
//
21+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
22+
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
23+
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24+
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
25+
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26+
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
27+
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
28+
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
29+
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
30+
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
31+
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32+
//
33+
//////////////////////////////////////////////////////////////////////////
34+
35+
#include "IECoreUSD/ObjectAlgo.h"
36+
#include "IECoreUSD/PrimitiveAlgo.h"
37+
38+
#include "IECoreScene/MeshPrimitive.h"
39+
40+
IECORE_PUSH_DEFAULT_VISIBILITY
41+
#include "pxr/usd/usdGeom/cube.h"
42+
IECORE_POP_DEFAULT_VISIBILITY
43+
44+
using namespace Imath;
45+
using namespace IECore;
46+
using namespace IECoreScene;
47+
using namespace IECoreUSD;
48+
49+
//////////////////////////////////////////////////////////////////////////
50+
// Reading
51+
//////////////////////////////////////////////////////////////////////////
52+
53+
namespace
54+
{
55+
56+
IECore::ObjectPtr readCube( pxr::UsdGeomCube &cube, pxr::UsdTimeCode time, const Canceller *canceller )
57+
{
58+
double size = 2.0f;
59+
cube.GetSizeAttr().Get( &size, time );
60+
IECoreScene::MeshPrimitivePtr result = IECoreScene::MeshPrimitive::createBox( Box3f( V3f( -size / 2.0 ), V3f( size / 2.0 ) ) );
61+
PrimitiveAlgo::readPrimitiveVariables( pxr::UsdGeomPrimvarsAPI( cube.GetPrim() ), time, result.get(), canceller );
62+
return result;
63+
}
64+
65+
bool cubeMightBeTimeVarying( pxr::UsdGeomCube &cube )
66+
{
67+
return
68+
cube.GetSizeAttr().ValueMightBeTimeVarying() ||
69+
PrimitiveAlgo::primitiveVariablesMightBeTimeVarying( pxr::UsdGeomPrimvarsAPI( cube.GetPrim() ) )
70+
;
71+
}
72+
73+
ObjectAlgo::ReaderDescription<pxr::UsdGeomCube> g_cubeReaderDescription( pxr::TfToken( "Cube" ), readCube, cubeMightBeTimeVarying );
74+
75+
} // namespace

contrib/IECoreUSD/src/IECoreUSD/SphereAlgo.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ IECore::ObjectPtr readSphere( pxr::UsdGeomSphere &sphere, pxr::UsdTimeCode time,
5858
double radius = 1.0f;
5959
sphere.GetRadiusAttr().Get( &radius, time );
6060
IECoreScene::SpherePrimitivePtr newSphere = new IECoreScene::SpherePrimitive( (float) radius );
61-
PrimitiveAlgo::readPrimitiveVariables( pxr::UsdGeomPrimvarsAPI( sphere.GetPrim() ), time, newSphere.get() );
61+
PrimitiveAlgo::readPrimitiveVariables( pxr::UsdGeomPrimvarsAPI( sphere.GetPrim() ), time, newSphere.get(), canceller );
6262
return newSphere;
6363
}
6464

0 commit comments

Comments
 (0)