{
  "title": "Box",
  "public_path": "flex_rf.tidy3d.Box",
  "lookup_path": "tidy3d.Box",
  "slug": "flex_rf/tidy3d/Box",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/box/",
  "object_kind": "class",
  "introduction": "Rectangular prism.\n   Also base class for `Simulation`, `Monitor`, and `Source`.",
  "notes": "",
  "examples": "```python\nb = Box(center=(1,2,3), size=(2,2,2))\n```",
  "references": "",
  "signature": "class Box(SimplePlaneIntersection, Centered)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/geometry/base.py",
    "url": "",
    "lineno": 2073,
    "endlineno": 2945
  },
  "bases": [
    "SimplePlaneIntersection",
    "Centered"
  ],
  "parameter_rows": [
    {
      "name": "size",
      "annotation": "TracedSize",
      "default": "",
      "description": "Size in x, y, and z directions.",
      "origin": "declared"
    },
    {
      "name": "attrs",
      "annotation": "dict",
      "default": "factory: dict",
      "description": "Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, `attrs` are mutable. For example, the following is allowed for setting an `attr` `obj.attrs['foo'] = bar`. Also note that Tidy3D will raise a `TypeError` if `attrs` contain objects that can not be serialized. One can check if `attrs` are serializable by calling `obj.model_dump_json()`.",
      "origin": "inherited"
    },
    {
      "name": "center",
      "annotation": "TracedCoordinate",
      "default": "(0.0, 0.0, 0.0)",
      "description": "Center of object in x, y, and z.",
      "origin": "inherited"
    }
  ],
  "members": [
    {
      "name": "bounds",
      "kind": "function",
      "signature": "bounds()",
      "description": "Returns bounding box min and max coordinates."
    },
    {
      "name": "from_bounds",
      "kind": "function",
      "signature": "from_bounds(rmin: Coordinate, rmax: Coordinate, **kwargs: Any)",
      "description": "Constructs a `Box` from minimum and maximum coordinate bounds"
    },
    {
      "name": "geometry",
      "kind": "function",
      "signature": "geometry()",
      "description": "`Box` representation of self (used for subclasses of Box)."
    },
    {
      "name": "inside",
      "kind": "function",
      "signature": "inside(x: NDArray[float], y: NDArray[float], z: NDArray[float])",
      "description": "For input arrays `x`, `y`, `z` of arbitrary but identical shape, return an array with the same shape which is `True` for every point in zip(x, y, z) that is inside the volume of the `Geometry`, and `False` otherwise."
    },
    {
      "name": "intersections_plane",
      "kind": "function",
      "signature": "intersections_plane(x: float | None = None, y: float | None = None, z: float | None = None, cleanup: bool = True, quad_segs: int | None = None, section_tolerance_2d: bool = False)",
      "description": "Returns shapely geometry at plane specified by one non None value of x,y,z."
    },
    {
      "name": "intersections_with",
      "kind": "function",
      "signature": "intersections_with(other: Geometry, cleanup: bool = True, quad_segs: int | None = None, section_tolerance_2d: bool = False)",
      "description": "Returns list of shapely geometries representing the intersections of the geometry with this 2D box."
    },
    {
      "name": "padded_copy",
      "kind": "function",
      "signature": "padded_copy(x: tuple[pydantic.NonNegativeFloat, pydantic.NonNegativeFloat] | None = None, y: tuple[pydantic.NonNegativeFloat, pydantic.NonNegativeFloat] | None = None, z: tuple[pydantic.NonNegativeFloat, pydantic.NonNegativeFloat] | None = None)",
      "description": "Created a padded copy of a `Box` instance."
    },
    {
      "name": "slightly_enlarged_copy",
      "kind": "function",
      "signature": "slightly_enlarged_copy()",
      "description": "Box size slightly enlarged around machine precision."
    },
    {
      "name": "surfaces",
      "kind": "function",
      "signature": "surfaces(size: Size, center: Coordinate, **kwargs: Any)",
      "description": "Returns a list of 6 `Box` instances corresponding to each surface of a 3D volume. The output surfaces are stored in the order [x-, x+, y-, y+, z-, z+], where x, y, and z denote which axis is perpendicular to that surface, while \"-\" and \"+\" denote the direction of the normal vector of that surface. If a name is provided, each output surface's name will be that of the provided name appended with the above symbols. E.g., if the provided name is \"box\", the x+ surfaces's name will be \"box_x+\"."
    },
    {
      "name": "surfaces_with_exclusion",
      "kind": "function",
      "signature": "surfaces_with_exclusion(size: Size, center: Coordinate, **kwargs: Any)",
      "description": "Returns a list of 6 `Box` instances corresponding to each surface of a 3D volume. The output surfaces are stored in the order [x-, x+, y-, y+, z-, z+], where x, y, and z denote which axis is perpendicular to that surface, while \"-\" and \"+\" denote the direction of the normal vector of that surface. If a name is provided, each output surface's name will be that of the provided name appended with the above symbols. E.g., if the provided name is \"box\", the x+ surfaces's name will be \"box_x+\". If `kwargs` contains an `exclude_surfaces` parameter, the returned list of surfaces will not include the excluded surfaces. Otherwise, the behavior is identical to that of `surfaces()`."
    },
    {
      "name": "zero_dims",
      "kind": "function",
      "signature": "zero_dims()",
      "description": "A list of axes along which the `Box` is zero-sized."
    }
  ],
  "group": "flex_rf.tidy3d"
}
