Cleanup: spelling in comments

This commit is contained in:
Campbell Barton 2024-01-08 11:24:37 +11:00
parent 268f93d763
commit 0ba83fde1f
42 changed files with 77 additions and 71 deletions

@ -257,7 +257,7 @@ class BlenderVolumeLoader : public VDBImageLoader {
BL::Volume b_volume;
#ifdef WITH_OPENVDB
/* Store tree user so that the openvdb grid that is shared with Blender is not unloaded. */
/* Store tree user so that the OPENVDB grid that is shared with Blender is not unloaded. */
blender::bke::VolumeTreeAccessToken tree_access_token;
#endif
};

@ -516,7 +516,7 @@ class AddPresetTrackingSettings(AddPresetBase, Operator):
class AddPresetEEVEERaytracing(AddPresetBase, Operator):
"""Add or remove an EEVEE raytracing preset"""
"""Add or remove an EEVEE ray-tracing preset"""
bl_idname = "render.eevee_raytracing_preset_add"
bl_label = "Add Raytracing Preset"
preset_menu = "RENDER_PT_eevee_next_raytracing_presets"

@ -681,7 +681,7 @@ void ANIM_armature_bonecoll_remove_from_index(bArmature *armature, int index)
armature_bonecoll_is_child_of(
armature, parent_bcoll_index, active_collection_index - 1))
{
/* The child preceeding active_collection_index is a sibling of the removed collection. */
/* The child preceding active_collection_index is a sibling of the removed collection. */
ANIM_armature_bonecoll_active_index_set(armature, active_collection_index - 1);
}
else {
@ -721,7 +721,7 @@ int ANIM_armature_bonecoll_get_index_by_name(bArmature *armature, const char *na
return -1;
}
/* Clear BONE_COLLECTION_ANCESTORS_VISIBLE on all decendents of this bone collection. */
/** Clear #BONE_COLLECTION_ANCESTORS_VISIBLE on all decedents of this bone collection. */
static void ancestors_visible_descendants_clear(bArmature *armature, BoneCollection *parent_bcoll)
{
for (BoneCollection *bcoll : armature->collection_children(parent_bcoll)) {
@ -730,7 +730,7 @@ static void ancestors_visible_descendants_clear(bArmature *armature, BoneCollect
}
}
/* Set or clear BONE_COLLECTION_ANCESTORS_VISIBLE on all decendents of this bone collection. */
/** Set or clear #BONE_COLLECTION_ANCESTORS_VISIBLE on all decedents of this bone collection. */
static void ancestors_visible_descendants_update(bArmature *armature, BoneCollection *parent_bcoll)
{
if (!parent_bcoll->is_visible_effectively()) {
@ -749,7 +749,7 @@ static void ancestors_visible_descendants_update(bArmature *armature, BoneCollec
}
}
/* Set/clear BONE_COLLECTION_ANCESTORS_VISIBLE on this bone collection and all its decendents. */
/** Set/clear BONE_COLLECTION_ANCESTORS_VISIBLE on this bone collection and all its decedents. */
static void ancestors_visible_update(bArmature *armature,
const BoneCollection *parent_bcoll,
BoneCollection *bcoll)

@ -1495,7 +1495,7 @@ class ANIM_armature_bone_collections_liboverrides
ANIM_armature_bone_collections_testlist::SetUp();
/* TODO: make this clone `arm` into `dst_arm`, instead of assuming the below
* code is still in sync with the superclass. */
* code is still in sync with the super-class. */
memset(&dst_arm, 0, sizeof(dst_arm));
STRNCPY(dst_arm.id.name, "ARArmatureDST");
@ -1524,7 +1524,7 @@ class ANIM_armature_bone_collections_liboverrides
TEST_F(ANIM_armature_bone_collections_liboverrides, bcoll_insert_copy_after)
{
/* Mimick that a new root, two children, and two grandchildren were added via library overrides.
/* Mimic that a new root, two children, and two grandchildren were added via library overrides.
* These were saved in `arm`, and now need to be copied into `dst_arm`. */
BoneCollection *src_root = ANIM_armature_bonecoll_new(&arm, "new_root");
const int root_index = armature_bonecoll_find_index(&arm, src_root);

@ -124,7 +124,7 @@ class SocketValueVariant {
/**
* Convert the stored value into a single value. For simple value access, this is not necessary,
* because #get` does the conversion implicitly. However, it is necessary if one wants to use
* #get_single_ptr. Context-dependend fields or grids will just result in a fallback value.
* #get_single_ptr. Context-depended fields or grids will just result in a fallback value.
*
* The caller has to make sure that the stored value is a single value, field or grid.
*/

@ -31,7 +31,7 @@ namespace blender::bke::volume_grid {
*
* A grid contains the following:
* - Transform: The mapping between index and object space. It also determines e.g. the voxel size.
* - Meta-data: Contains e.g. the name and grid class (fog volume or sdf) and potentially other
* - Meta-data: Contains e.g. the name and grid class (fog volume or SDF) and potentially other
* data.
* - Tree: This is the heavy data that contains all the voxel values.
*
@ -44,12 +44,12 @@ namespace blender::bke::volume_grid {
* with independent meta-data and transforms. The tree is only actually copied when necessary.
* - Lazy loading of the entire grid or just the tree: When constructing the #VolumeGridData it is
* possible to provide a callback that lazy-loads the grid when it is first accessed. This is
* especially benefitial when loading grids from a file and it's not clear in the beginning if
* especially beneficial when loading grids from a file and it's not clear in the beginning if
* the tree is actually needed. It's also supported to just load the meta-data and transform
* first and to load the tree only when it's used. This allows e.g. transforming or renaming the
* grid without loading the tree.
* - Unloading of the tree: It's possible to unload the tree data when it is not in use. This is
* only supported on a shared grid if the tree could be reloaded (e.g. by reading it from a vdb
* only supported on a shared grid if the tree could be reloaded (e.g. by reading it from a VDB
* file) and if no one is currently accessing the grid data.
*/
class VolumeGridData : public ImplicitSharingMixin {

@ -44,8 +44,8 @@ struct GridsFromFile {
};
/**
* Get all the data stored in a .vdb file. This does not actually load the tree data, which is done
* on demand.
* Get all the data stored in a `.vdb` file.
* This does not actually load the tree data, which is done on demand.
*/
GridsFromFile get_all_grids_from_file(StringRef file_path, int simplify_level = 0);

@ -89,7 +89,7 @@ void clear_tree(VolumeGridData &grid);
/**
* Makes sure that the volume grid is loaded afterwards. This is necessary to call this for
* correctness, because the grid will be loaded on demand anyway. Sometimes it may be benefitial
* correctness, because the grid will be loaded on demand anyway. Sometimes it may be beneficial
* for performance to load the grid eagerly though.
*/
void load(const VolumeGridData &grid);

@ -16,7 +16,7 @@ namespace blender::bke::volume_grid {
#ifdef WITH_OPENVDB
/**
* Multiple #VolumeDataGrid can implictly share the same underlying tree with different
* Multiple #VolumeDataGrid can implicitly share the same underlying tree with different
* meta-data/transforms.
*/
class OpenvdbTreeSharingInfo : public ImplicitSharingInfo {
@ -247,7 +247,7 @@ GVolumeGrid VolumeGridData::copy() const
{
std::lock_guard lock{mutex_};
this->ensure_grid_loaded();
/* Can't use #MEM_new because the default construtor is private. */
/* Can't use #MEM_new because the default constructor is private. */
VolumeGridData *new_copy = new (MEM_mallocN(sizeof(VolumeGridData), __func__)) VolumeGridData();
/* Makes a deep copy of the meta-data but shares the tree. */
new_copy->grid_ = grid_->copyGrid();

@ -15,7 +15,7 @@ void main()
ivec2 texel = ivec2(gl_GlobalInvocationID.xy);
float depth = texture_load(depth_tx, texel).x;
/* Compute Vu in equation (7). */
/* Compute `Vu` in equation (7). */
const float distance_to_image_of_object = (focal_length * depth) / (depth - focal_length);
/* Compute C in equation (8). Notice that the last multiplier was included in the absolute since

@ -510,7 +510,7 @@ void DeferredLayer::end_sync()
RenderBuffersInfoData &rbuf_data = inst_.render_buffers.data;
/* NOTE: For tile-based GPU architectures, barriers are not always needed if implicit local
* ordering is guarnteed via either blending order or explicit raster_order_groups. */
* ordering is guaranteed via either blending order or explicit raster_order_groups. */
bool is_tbdr_arch_metal = (GPU_platform_architecture() == GPU_ARCHITECTURE_TBDR) &&
(GPU_backend_get_type() == GPU_BACKEND_METAL);

@ -1206,7 +1206,7 @@ enum GBufferMode : uint32_t {
GBUF_REFRACTION_COLORLESS = 13u,
/** Special configurations. Packs multiple closures into less layer. */
/* TODO(fclem): This is isn't currently working due to monolitic nature of the evaluation. */
/* TODO(@fclem): This is isn't currently working due to monolithic nature of the evaluation. */
GBUF_METAL_CLEARCOAT = 15u,
/** IMPORTANT: Needs to be less than 16 for correct packing in g-buffer header. */

@ -59,7 +59,7 @@ void main()
for (int i = 0; i < GBUFFER_LAYER_MAX && i < gbuf.closure_count; i++) {
vec3 closure_light = load_radiance_direct(texel, i);
/* TODO(fclem): Enable for OpenGL and Vulkan once they fully support specialization constants.
/* TODO(fclem): Enable for OpenGL and VULKAN once they fully support specialization constants.
*/
#ifndef GPU_METAL
bool use_combined_lightprobe_eval = uniform_buf.pipeline.use_combined_lightprobe_eval;

@ -87,7 +87,7 @@ void main()
#ifdef MAT_SUBSURFACE
if (has_sss) {
/* Add to diffuse light for processing inside the Screen Space SSS pass.
* The tranlucent light is not outputed as a separate quantity because
* The translucent light is not outputted as a separate quantity because
* it is over the closure_count. */
vec3 sss_profile = subsurface_transmission(gbuffer_closure_get(gbuf, 0).data.rgb, thickness);
stack.cl[0].light_shadowed += stack.cl[gbuf.closure_count].light_shadowed * sss_profile;

@ -85,7 +85,7 @@ struct GBufferReader {
/* -------------------------------------------------------------------- */
/** \name Load / Store macros
*
* This allows for writting unit tests that read and write during the same shader invocation.
* This allows for writing unit tests that read and write during the same shader invocation.
* \{ */
#ifdef GBUFFER_LOAD
@ -666,7 +666,7 @@ GBufferWriter gbuffer_pack(GBufferDataUndetermined data_in)
if (has_diffuse) {
if (has_sss) {
/* Subsurface need to be first to be outputed in first lighting texture. */
/* Subsurface need to be first to be outputted in first lighting texture. */
gbuffer_closure_subsurface_pack(gbuf, data_in.diffuse);
}
else {
@ -692,7 +692,7 @@ GBufferWriter gbuffer_pack(GBufferDataUndetermined data_in)
}
}
/* TODO(fclem): Allow misxing of translucent and refraction. */
/* TODO(@fclem): Allow mixing of translucent and refraction. */
if (has_translucent && !has_refraction) {
gbuffer_closure_translucent_pack(gbuf, data_in.translucent);
}
@ -833,4 +833,4 @@ GBufferReader gbuffer_read(samplerGBufferHeader header_tx,
return gbuf;
}
/** \} */
/** \} */

@ -36,7 +36,7 @@ void main()
gbuf_header_tx, gbuf_closure_tx, gbuf_normal_tx, texel_fullres);
#ifndef GPU_METAL
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
int closure_index = uniform_buf.raytrace.closure_index;
#endif

@ -75,7 +75,7 @@ void main()
gbuf_header_tx, gbuf_closure_tx, gbuf_normal_tx, texel_fullres);
#ifndef GPU_METAL
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
int closure_index = uniform_buf.raytrace.closure_index;
#endif

@ -36,7 +36,7 @@ void main()
uniform_buf.raytrace.resolution_bias;
#ifndef GPU_METAL
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
int closure_index = uniform_buf.raytrace.closure_index;
#endif

@ -38,7 +38,7 @@ void main()
uniform_buf.raytrace.resolution_bias;
#ifndef GPU_METAL
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
int closure_index = uniform_buf.raytrace.closure_index;
#endif
@ -78,7 +78,7 @@ void main()
ray_view.max_time = 1000.0;
#ifndef GPU_METAL
/* TODO(fclem): Support specialization on OpenGL and Vulkan. */
/* TODO(fclem): Support specialization on OpenGL and VULKAN. */
bool trace_refraction = uniform_buf.raytrace.trace_refraction;
#endif

@ -1023,11 +1023,12 @@ static bool move_to_collection_poll(bContext *C)
/**
* Encode the parameters into an integer, and return as void*.
*
* This makes it possible to use these values and pass them directly as 'custom data' pointer to
* `uiItemMenuF()`. This makes it possible to give every menu a unique bone collection index for
* which it should show the child collections, without having to allocate memory or use static
* variables. See `move_to_collection_invoke()` in `object_edit.cc` for the alternative that I
* (Sybren) wanted to avoid. */
* NOTE(@sybren): This makes it possible to use these values and pass them directly as
* 'custom data' pointer to `uiItemMenuF()`. This makes it possible to give every menu a unique
* bone collection index for which it should show the child collections, without having to allocate
* memory or use static variables. See `move_to_collection_invoke()` in `object_edit.cc`
* for the alternative that I wanted to avoid.
*/
static void *menu_custom_data_encode(const int bcoll_index, const bool is_move_operation)
{
/* Add 1 to the index, so that it's never negative (it can be -1 to indicate 'all roots'). */

@ -2293,9 +2293,9 @@ uiLayout *uiLayoutRow(uiLayout *layout, bool align);
* property name pair. This gives the caller flexibility to decide who should own the open-state.
*
* \param C: The context is necessary because sometimes the panel may be forced to be open by the
* context even of the open-property is `false`. This can happen with e.g. property search.
* \param layout: The `uiLayout` that should contain the subpanel. Only layouts that span the full
* width of the region are supported for now.
* context even of the open-property is `false`. This can happen with e.g. property search.
* \param layout: The `uiLayout` that should contain the sub-panel.
* Only layouts that span the full width of the region are supported for now.
* \param name: Text that's shown in the panel header. It should already be translated.
* \param open_prop_owner: Data that contains the open-property.
* \param open_prop_name: Name of the open-property in `open_prop_owner`.

@ -219,7 +219,7 @@ class BoneCollectionItem : public AbstractTreeViewItem {
uiItemL(sub, "", icon);
}
/* Visibility eyecon. */
/* Visibility eye icon. */
{
uiLayout *visibility_sub = uiLayoutRow(sub, true);
uiLayoutSetActive(visibility_sub, bone_collection_.is_visible_ancestors());

@ -26,7 +26,7 @@
static CLG_LogRef LOG = {"io.drop_import_file"};
/* Retuns the list of file paths stored in #WM_OT_drop_import_file operator properties. */
/** Returns the list of file paths stored in #WM_OT_drop_import_file operator properties. */
static blender::Vector<std::string> drop_import_file_paths(const wmOperator *op)
{
blender::Vector<std::string> result;

@ -207,7 +207,7 @@ struct Node {
bool applied;
/* shape keys */
char shapeName[MAX_NAME]; /* sizeof(KeyBlock::name). */
char shapeName[MAX_NAME]; /* `sizeof(KeyBlock::name)`. */
/* Geometry modification operations.
*

@ -58,7 +58,7 @@ static blender::float2 rgb_to_uv_normalized(const float rgb[3])
{
/* Exact same math as rgb_to_yuv BT709 case. Duplicated here
* since this function is called a lot, and non-inline function
* call plus colorspace switch in there overhead does add up. */
* call plus color-space switch in there overhead does add up. */
float r = rgb[0], g = rgb[1], b = rgb[2];
/* We don't need y. */
float u = -0.09991f * r - 0.33609f * g + 0.436f * b;

@ -19,7 +19,7 @@ namespace blender::ed::seq {
struct ScopeHistogram {
/* Byte images just have bins for the 0..255 range. */
static constexpr int BINS_BYTE = 256;
/* Float images spead -0.25..+1.25 range over 512 bins. */
/* Float images spread -0.25..+1.25 range over 512 bins. */
static constexpr int BINS_FLOAT = 512;
static constexpr float FLOAT_VAL_MIN = -0.25f;
static constexpr float FLOAT_VAL_MAX = 1.25f;

@ -517,7 +517,7 @@ static void draw_seq_waveform_overlay(TimelineDrawContext *timeline_ctx,
CLAMP_MIN(value_min, -1.0f);
}
/* We are drawing only half ot the waveform, mirroring the lower part upwards.
/* We are drawing only half to the waveform, mirroring the lower part upwards.
* If both min and max are on the same side of zero line, we want to draw a bar
* between them. If min and max cross zero, we want to fill bar from zero to max
* of those. */

@ -102,7 +102,7 @@ struct MTLRenderPipelineStateInstance {
/* Common compute pipeline state. */
struct MTLComputePipelineStateCommon {
/* Threadgroup information is common for all PSO variants.*/
/* Thread-group information is common for all PSO variants. */
int threadgroup_x_len = 1;
int threadgroup_y_len = 1;
int threadgroup_z_len = 1;

@ -56,7 +56,7 @@ const char *MTLLogParser::parse_line(const char *source_combined,
int64_t file_start = src.find(needle);
if (file_start == -1) {
/* Can be generated code or wrapper code outside of the main sources.
* But should be already catched by the above case. */
* But should be already caught by the above case. */
log_item.cursor.row = -1;
wrapper_error_ = true;
}
@ -74,7 +74,7 @@ const char *MTLLogParser::parse_line(const char *source_combined,
}
}
else if (parsed_error_) {
/* Skip the redundant lines that we be outputed above the error. */
/* Skip the redundant lines that we be outputted above the error. */
return skip_line(log_line);
}
else if (wrapper_error_) {

@ -208,8 +208,8 @@ void curves_vector(vec3 vector,
vec3 end_slopes,
out vec3 result)
{
/* Evaluate each component on its curve map. The componenets are first normalized into the [0, 1]
* range. */
/* Evaluate each component on its curve map.
* The components are first normalized into the [0, 1] range. */
vec3 parameters = (vector - range_minimums) * range_dividers;
vec3 coordinates = compute_curve_map_coordinates(parameters);
result.x = texture(curve_map, vec2(coordinates.x, layer)).x;

@ -45,7 +45,7 @@ void get_armature_bone_names(const Object *ob_arm, bool use_deform, Vector<std::
/**
* Return the USD joint path corresponding to the given bone. For example, for the bone
* "Hand", this function might return the full path "Shoulder/Elbow/Hand" of the joint
* in the hierachy.
* in the hierarchy.
*
* \param bone: The bone whose path will be queried.
* \return: The path to the joint

@ -135,7 +135,7 @@ void ensure_blend_shape_skeleton(pxr::UsdStageRefPtr stage, pxr::UsdPrim &mesh_p
skel.GetRestTransformsAttr().Set(rest_transforms);
/* Some DCCs seem to require joint names to bind the
* skeleton to blendshapes. */
* skeleton to blend-shapes. */
pxr::VtTokenArray joints({usdtokens::joint1});
skel.CreateJointsAttr().Set(joints);
}
@ -284,13 +284,13 @@ void create_blend_shapes(pxr::UsdStageRefPtr stage,
point_indices_attr.Set(indices);
}
/* Set the blendshape names and targets on the shape. */
/* Set the blend-shape names and targets on the shape. */
pxr::UsdAttribute blendshape_attr = skel_api.CreateBlendShapesAttr();
blendshape_attr.Set(blendshape_names);
skel_api.CreateBlendShapeTargetsRel().SetTargets(blendshape_paths);
/* Some DCCs seem to require joint indices and weights to
* bind the skeleton for blendshapes, so we we create these
* bind the skeleton for blend-shapes, so we we create these
* primvars, if needed. */
if (!skel_api.GetJointIndicesAttr().HasAuthoredValue()) {

@ -44,9 +44,9 @@ const Key *get_mesh_shape_key(const Object *obj);
bool is_mesh_with_shape_keys(const Object *obj);
/**
* Convert shape keys on the given object to USD blend shapes. The blend shapes
* will be added to the stage as children of the given USD mesh prim. The blendshape
* names and targets will also be set as properites on the prim.
* Convert shape keys on the given object to USD blend shapes. The blend-shapes
* will be added to the stage as children of the given USD mesh prim. The blend-shape
* names and targets will also be set as properties on the primitive.
*
* \param stage: The stage
* \param obj: The mesh object whose shape keys will be converted to blend shapes

@ -396,7 +396,7 @@ void USDStageReader::collect_readers(Main *bmain)
collect_readers(bmain, root, readers_);
if (params_.support_scene_instancing) {
/* Collect the scenegraph instance prototypes. */
/* Collect the scene-graph instance prototypes. */
std::vector<pxr::UsdPrim> protos = stage_->GetPrototypes();
for (const pxr::UsdPrim &proto_prim : protos) {

@ -39,7 +39,7 @@ class USDStageReader {
* traversal, for importing unused materials. */
blender::Vector<std::string> material_paths_;
/* Readers for scenegraph instance prototypes. */
/* Readers for scene-graph instance prototypes. */
ProtoReaderMap proto_readers_;
public:

@ -1116,7 +1116,7 @@ void skel_export_chaser(pxr::UsdStageRefPtr stage,
const ObjExportMap &shape_key_mesh_export_map,
const Depsgraph *depsgraph)
{
/* We may need to compute the world transforms of certain prims when
/* We may need to compute the world transforms of certain primitives when
* setting skinning data. Using a shared transform cache can make computing
* the transforms more efficient. */
pxr::UsdGeomXformCache xf_cache(1.0);
@ -1152,7 +1152,7 @@ void skinned_mesh_export_chaser(pxr::UsdStageRefPtr stage,
CLOG_WARN(&LOG, "Invalid armature modifier for skinned mesh %s", mesh_obj->id.name + 2);
continue;
}
/* Look up the USD skeleton correpsoning to the armature object. */
/* Look up the USD skeleton corresponding to the armature object. */
const pxr::SdfPath *path = armature_export_map.lookup_ptr(arm_obj);
if (!path) {
CLOG_WARN(&LOG, "No export map entry for armature object %s", mesh_obj->id.name + 2);
@ -1175,7 +1175,7 @@ void shape_key_export_chaser(pxr::UsdStageRefPtr stage,
{
Map<pxr::SdfPath, pxr::SdfPathSet> skel_to_mesh;
/* We will keep track of the mesh prims to clean up the temporary
/* We will keep track of the mesh primitives to clean up the temporary
* weights attribute at the end. */
Vector<pxr::UsdPrim> mesh_prims;
@ -1194,7 +1194,7 @@ void shape_key_export_chaser(pxr::UsdStageRefPtr stage,
continue;
}
/* Keep track of all the mesh prims with blend shapes, for cleanup below. */
/* Keep track of all the mesh primitives with blend shapes, for cleanup below. */
mesh_prims.append(mesh_prim);
pxr::UsdSkelBindingAPI skel_api = pxr::UsdSkelBindingAPI::Apply(mesh_prim);

@ -99,7 +99,7 @@ using ObjExportMap = Map<const Object *, pxr::SdfPath>;
* \param stage: The stage
* \param armature_export_map: Map armature objects to USD skeletons
* \param skinned_mesh_export_map: Map mesh objects to USD skinned meshes
* \param shape_key_export_map: Map mesh objects with shape keye to USD meshes
* \param shape_key_export_map: Map mesh objects with shape-key to USD meshes
* with blend shape targets
* \param depsgraph: The dependency graph in which objects were evaluated
*/
@ -128,7 +128,7 @@ void skinned_mesh_export_chaser(pxr::UsdStageRefPtr stage,
* Complete the export process for shape keys.
*
* \param stage: The stage
* \param shape_key_export_map: Map mesh objects with shape keye to USD meshes
* \param shape_key_export_map: Map mesh objects with shape-key to USD meshes
* with blend shape targets
*/
void shape_key_export_chaser(pxr::UsdStageRefPtr stage,

@ -95,7 +95,7 @@ void create_skel_roots(pxr::UsdStageRefPtr stage, const USDExportParams &params)
continue;
}
/* Try to find a commmon ancestor of the skinned prim and its bound skeleton. */
/* Try to find a common ancestor of the skinned prim and its bound skeleton. */
pxr::UsdSkelRoot prim_skel_root = pxr::UsdSkelRoot::Find(prim);
pxr::UsdSkelRoot skel_skel_root = pxr::UsdSkelRoot::Find(skel.GetPrim());

@ -11,7 +11,7 @@ namespace blender::io::usd {
/**
* We must structure the scene graph to encapsulate skinned prim under a UsdSkelRoot
* prim. Per the USD documentation, a SkelRoot is a
* prim. Per the USD documentation, a SkelRoot is a:
*
* "Boundable prim type used to identify a scope beneath which skeletally-posed primitives are
* defined. A SkelRoot must be defined at or above a skinned primitive for any skinning behaviors

@ -31,9 +31,11 @@ namespace usdtokens {
static const pxr::TfToken Anim("Anim", pxr::TfToken::Immortal);
} // namespace usdtokens
/* Get the pose matrix for the given channe. The matrix is computed
* relative to its parent, if a parent exists. The returned matrix
* corresponds to the USD joint-local transform. */
/**
* Get the pose matrix for the given channel.
* The matrix is computed relative to its parent, if a parent exists.
* The returned matrix corresponds to the USD joint-local transform.
*/
static pxr::GfMatrix4d parent_relative_pose_mat(const bPoseChannel *pchan)
{
/* Note that the float matrix will be returned as GfMatrix4d, because

@ -256,7 +256,7 @@ class DefocusOperation : public NodeOperation {
}
/* Computes the distance in meters to the image of the focus point across a lens of the specified
* focal length. This computes Vp in equation (7) of the paper:
* focal length. This computes `Vp` in equation (7) of the paper:
*
* Potmesil, Michael, and Indranil Chakravarty. "A lens and aperture camera model for synthetic
* image generation." ACM SIGGRAPH Computer Graphics 15.3 (1981): 297-305. */

@ -99,6 +99,7 @@ dict_custom = {
"deduplicating",
"deduplication",
"defocus",
"defocusing",
"defragment",
"defragmented",
"defragmenting",
@ -349,6 +350,7 @@ dict_custom = {
"sidedness",
"simplices",
"situationally",
"skeletally",
"skinnable",
"skippable",
"sortable",
@ -486,6 +488,7 @@ dict_custom = {
"unshadowed",
"unshared",
"unsharp",
"unspecialized",
"unsqueezed",
"unstretch",
"unsubdivided",