28 if (
color.NumElements() == 0) {
33 color.GetDtype().ToString());
87 double* Tinv_ptr = Tinv.GetDataPtr<
double>();
90 Tinv_ptr[0 * 4 + 0] = T_ptr[0 * 4 + 0];
91 Tinv_ptr[0 * 4 + 1] = T_ptr[1 * 4 + 0];
92 Tinv_ptr[0 * 4 + 2] = T_ptr[2 * 4 + 0];
94 Tinv_ptr[1 * 4 + 0] = T_ptr[0 * 4 + 1];
95 Tinv_ptr[1 * 4 + 1] = T_ptr[1 * 4 + 1];
96 Tinv_ptr[1 * 4 + 2] = T_ptr[2 * 4 + 1];
98 Tinv_ptr[2 * 4 + 0] = T_ptr[0 * 4 + 2];
99 Tinv_ptr[2 * 4 + 1] = T_ptr[1 * 4 + 2];
100 Tinv_ptr[2 * 4 + 2] = T_ptr[2 * 4 + 2];
103 Tinv_ptr[0 * 4 + 3] = -(Tinv_ptr[0 * 4 + 0] * T_ptr[0 * 4 + 3] +
104 Tinv_ptr[0 * 4 + 1] * T_ptr[1 * 4 + 3] +
105 Tinv_ptr[0 * 4 + 2] * T_ptr[2 * 4 + 3]);
106 Tinv_ptr[1 * 4 + 3] = -(Tinv_ptr[1 * 4 + 0] * T_ptr[0 * 4 + 3] +
107 Tinv_ptr[1 * 4 + 1] * T_ptr[1 * 4 + 3] +
108 Tinv_ptr[1 * 4 + 2] * T_ptr[2 * 4 + 3]);
109 Tinv_ptr[2 * 4 + 3] = -(Tinv_ptr[2 * 4 + 0] * T_ptr[0 * 4 + 3] +
110 Tinv_ptr[2 * 4 + 1] * T_ptr[1 * 4 + 3] +
111 Tinv_ptr[2 * 4 + 2] * T_ptr[2 * 4 + 3]);
114 Tinv_ptr[3 * 4 + 0] = 0;
115 Tinv_ptr[3 * 4 + 1] = 0;
116 Tinv_ptr[3 * 4 + 2] = 0;
117 Tinv_ptr[3 * 4 + 3] = 1;
#define AssertTensorDevice(tensor,...)
#define AssertTensorDtype(tensor,...)
#define AssertTensorShape(tensor,...)
std::string ToString() const
static const Dtype Float64
bool IsContiguous() const
int64_t NumElements() const
SizeVector GetShape() const
void CheckDepthTensor(const core::Tensor &depth)
void CheckExtrinsicTensor(const core::Tensor &extrinsic)
void CheckIntrinsicTensor(const core::Tensor &intrinsic)
void CheckBlockCoordinates(const core::Tensor &block_coords)
core::Tensor InverseTransformation(const core::Tensor &T)
TODO(wei): find a proper place for such functionalities.
void CheckColorTensor(const core::Tensor &color)
Generic file read and write utility for python interface.