code: def validate_bbox3d(boxes: torch.Tensor) -> bool:
      """Validate if a 3D bounding box usable or not. This function checks if the boxes are cube or not.
  
      Args:
          boxes: a tensor containing the coordinates of the bounding boxes to be extracted. The tensor must have the shape
              of Bx8x3, where each box is defined in the following ``clockwise`` order: front-top-left, front-top-right,
              front-bottom-right, front-bottom-left, back-top-left, back-top-right, back-bottom-right, back-bottom-left.
              The coordinates must be in the x, y, z order.
      """
      if not (
          len(boxes.shape) in [3, 4]
          and boxes.shape[-2:] == torch.Size([8, 3])
      ):
          raise AssertionError(
              f"Box shape must be (B, 8, 3) or (B, N, 8, 3). Got {boxes.shape}."
          )
  
      if len(boxes.shape) == 4:
          boxes = boxes.view(-1, 8, 3)
  
      left = torch.index_select(
          boxes,
          1,
          torch.tensor(
              [1, 2, 5, 6], device=boxes.device, dtype=torch.long
          ),
      )[:, :, 0]
      right = torch.index_select(
          boxes,
          1,
          torch.tensor(
              [0, 3, 4, 7], device=boxes.device, dtype=torch.long
          ),
      )[:, :, 0]
      widths = left - right + 1
      if not torch.allclose(widths.permute(1, 0), widths[:, 0]):
          raise AssertionError(
              f"Boxes must have be cube, while get different widths {widths}."
          )
  
      bot = torch.index_select(
          boxes,
          1,
          torch.tensor(
              [2, 3, 6, 7], device=boxes.device, dtype=torch.long
          ),
      )[:, :, 1]
      upper = torch.index_select(
          boxes,
          1,
          torch.tensor(
              [0, 1, 4, 5], device=boxes.device, dtype=torch.long
          ),
      )[:, :, 1]
      heights = bot - upper + 1
      if not torch.allclose(heights.permute(1, 0), heights[:, 0]):
          raise AssertionError(
              f"Boxes must have be cube, while get different heights {heights}."
          )
  
      depths = boxes[:, 4:, 2] - boxes[:, :4, 2] + 1
      if not torch.allclose(depths.permute(1, 0), depths[:, 0]):
          raise AssertionError(
              f"Boxes must have be cube, while get different depths {depths}."
          )
  
      return True
  
file_path: kornia/kornia/geometry/bbox.py
imports: from __future__ import annotations
  import warnings
  from typing import Optional
  import torch
  from kornia.core import arange, ones_like, stack, where, zeros
  from .linalg import transform_points
label_desc: Use image node_id 2 for calling a global function with example usage: validate_bbox3d(boxes) and returns: True