GfRange3d GfRange3d::GetOctant(size_t i) const { if (i > 7) { TF_CODING_ERROR("Invalid octant %zu > 7.", i); return GfRange3d(); } GfVec3d a = GetCorner(i); GfVec3d b = .5 * (_min + _max); return GfRange3d( GfVec3d(GfMin(a[0], b[0]), GfMin(a[1], b[1]), GfMin(a[2], b[2])), GfVec3d(GfMax(a[0], b[0]), GfMax(a[1], b[1]), GfMax(a[2], b[2]))); }
bool UsdGeomCylinder::ComputeExtent(double height, double radius, const TfToken& axis, const GfMatrix4d& transform, VtVec3fArray* extent) { // Create Sized Extent extent->resize(2); GfVec3f max; if (!_ComputeExtentMax(height, radius, axis, &max)) { return false; } GfBBox3d bbox = GfBBox3d(GfRange3d(-max, max), transform); GfRange3d range = bbox.ComputeAlignedRange(); (*extent)[0] = GfVec3f(range.GetMin()); (*extent)[1] = GfVec3f(range.GetMax()); return true; }
/*virtual*/ GfRange3d HdSceneDelegate::GetExtent(SdfPath const & id) { return GfRange3d(); }