Skip to content

Commit 18f3ac1

Browse files
committed
create world prim and add physics information
Signed-off-by: Ashton Larkin <42042756+adlarkin@users.noreply.github.com>
1 parent fa4568b commit 18f3ac1

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

usd/src/World.cc

+18-1
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,13 @@
2121
#include <string>
2222

2323
#include <pxr/base/gf/vec3f.h>
24+
#include <pxr/usd/sdf/path.h>
25+
#include <pxr/usd/usd/prim.h>
2426
#include <pxr/usd/usd/stage.h>
2527
#include <pxr/usd/usdGeom/tokens.h>
28+
#include <pxr/usd/usdPhysics/scene.h>
29+
30+
#include "sdf/World.hh"
2631

2732
namespace usd
2833
{
@@ -35,8 +40,20 @@ namespace usd
3540
_stage->SetStartTimeCode(0);
3641
_stage->SetTimeCodesPerSecond(24);
3742

43+
const pxr::SdfPath worldPrimPath(_path);
44+
auto usdWorldPrim = _stage->DefinePrim(worldPrimPath);
45+
46+
auto usdPhysics = pxr::UsdPhysicsScene::Define(_stage,
47+
pxr::SdfPath(_path + "/physics"));
48+
const auto &sdfWorldGravity = _world.Gravity();
49+
const auto normalizedGravity = sdfWorldGravity.Normalized();
50+
usdPhysics.CreateGravityDirectionAttr().Set(pxr::GfVec3f(
51+
normalizedGravity.X(), normalizedGravity.Y(), normalizedGravity.Z()));
52+
usdPhysics.CreateGravityMagnitudeAttr().Set(
53+
static_cast<float>(sdfWorldGravity.Length()));
54+
3855
// TODO(ahcorde) Add parser
39-
std::cerr << "Parser is not yet implemented" << '\n';
56+
std::cerr << "Parser for a sdf world is not yet implemented\n";
4057

4158
return true;
4259
}

0 commit comments

Comments
 (0)