class_docstr: Base class to represent the Se2 group.
  
  The SE(2) is the group of rigid body transformations about the origin of two-dimensional Euclidean
  space :math:`R^2` under the operation of composition.
  See more:
  
  Example:
      >>> so2 = So2.identity(1)
      >>> t = torch.ones((1, 2))
      >>> se2 = Se2(so2, t)
      >>> se2
      rotation: Parameter containing:
      tensor([1.+0.j], requires_grad=True)
      translation: Parameter containing:
      tensor([[1., 1.]], requires_grad=True)
class_docstr_tok: ["Base","class","to","represent","the","Se2","group",".","The","SE","(","2",")","is","the","group","of","rigid","body","transformations","about","the","origin","of","two-dimensional","Euclidean","space",":","math",":","`","R^2","`","under","the","operation","of","composition",".","See","more",":","Example",":",">",">",">","so2","=","So2.identity","(","1",")",">",">",">","t","=","torch.ones","(","(","1",",","2",")",")",">",">",">","se2","=","Se2","(","so2",",","t",")",">",">",">","se2","rotation",":","Parameter","containing",":","tensor","(","[","1.+0.j","]",",","requires_grad=True",")","translation",":","Parameter","containing",":","tensor","(","[","[","1.",",","1",".","]","]",",","requires_grad=True",")"]
docstr: Constructor for the base class.
  
  Internally represented by a complex number `z` and a translation 2-vector.
  
  Args:
      rotation: So2 group encompassing a rotation.
      translation: translation vector with the shape of :math:`(B, 2)`.
  
  Example:
      >>> so2 = So2.identity(1)
      >>> t = torch.ones((1, 2))
      >>> se2 = Se2(so2, t)
      >>> se2
      rotation: Parameter containing:
      tensor([1.+0.j], requires_grad=True)
      translation: Parameter containing:
      tensor([[1., 1.]], requires_grad=True)
docstr_tok: ["Constructor","for","the","base","class",".","Internally","represented","by","a","complex","number","`","z","`","and","a","translation","2-vector",".","Args",":","rotation",":","So2","group","encompassing","a","rotation",".","translation",":","translation","vector","with","the","shape","of",":","math",":","`","(","B",",","2",")","`",".","Example",":",">",">",">","so2","=","So2.identity","(","1",")",">",">",">","t","=","torch.ones","(","(","1",",","2",")",")",">",">",">","se2","=","Se2","(","so2",",","t",")",">",">",">","se2","rotation",":","Parameter","containing",":","tensor","(","[","1.+0.j","]",",","requires_grad=True",")","translation",":","Parameter","containing",":","tensor","(","[","[","1.",",","1",".","]","]",",","requires_grad=True",")"]
code: def __init__(
      self, rotation: So2, translation: Vector2 | Tensor
  ) -> None:
      """Constructor for the base class.
  
      Internally represented by a complex number `z` and a translation 2-vector.
  
      Args:
          rotation: So2 group encompassing a rotation.
          translation: translation vector with the shape of :math:`(B, 2)`.
  
      Example:
          >>> so2 = So2.identity(1)
          >>> t = torch.ones((1, 2))
          >>> se2 = Se2(so2, t)
          >>> se2
          rotation: Parameter containing:
          tensor([1.+0.j], requires_grad=True)
          translation: Parameter containing:
          tensor([[1., 1.]], requires_grad=True)
      """
      super().__init__()
      KORNIA_CHECK_TYPE(rotation, So2)
      # TODO change to KORNIA_CHECK_SHAPE once there is multiple shape support
      # KORNIA_CHECK_TYPE(translation, (Vector3, Tensor))
      if not isinstance(translation, (Vector2, Tensor)):
          raise TypeError(f"translation type is {type(translation)}")
      self._translation: Vector2 | Parameter
      self._rotation: So2 = rotation
      if isinstance(translation, Tensor):
          _check_se2_r_t_shape(rotation, translation)  # TODO remove
          self._translation = Parameter(translation)
      else:
          self._translation = translation
  
imports: from __future__ import annotations
  from typing import Optional, overload
  from kornia.core import Device, Dtype, Module, Parameter, Tensor, concatenate, pad, rand, stack, tensor, where, zeros_like
  from kornia.core.check import KORNIA_CHECK, KORNIA_CHECK_SAME_DEVICES, KORNIA_CHECK_TYPE
  from kornia.geometry.liegroup._utils import check_se2_omega_shape, check_se2_t_shape, check_v_shape
  from kornia.geometry.liegroup.so2 import So2
  from kornia.geometry.vector import Vector2
label_desc: Use image node_id 1 to create a new Se2 object from inherited base classes: Module with example: obj = Se2(rotation, translation)