main/src/georegression/transform/se/SePointOps_F64.java
public static Point3D_F64 transform(Se3_F64 se, Point4D_F64 origPt, Point3D_F64 tranPt ) {
		if( tranPt == null )
			tranPt = new Point3D_F64();

		DMatrixRMaj R = se.getR();
		Vector3D_F64 T = se.getT();

		double P11 = R.data[0], P12 = R.data[1], P13 = R.data[2], P14 = T.x;
		double P21 = R.data[3], P22 = R.data[4], P23 = R.data[5], P24 = T.y;
		double P31 = R.data[6], P32 = R.data[7], P33 = R.data[8], P34 = T.z;

		tranPt.x = P11*origPt.x + P12*origPt.y + P13*origPt.z + P14*origPt.w;
		tranPt.y = P21*origPt.x + P22*origPt.y + P23*origPt.z + P24*origPt.w;
		tranPt.z = P31*origPt.x + P32*origPt.y + P33*origPt.z + P34*origPt.w;

		return tranPt;
	}
public static Point3D_F64 transform(Se3_F64 se, Point4D_F64 origPt, Point3D_F64 tranPt ) {
		if( tranPt == null )
			tranPt = new Point3D_F64();

		DMatrixRMaj R = se.getR();
		Vector3D_F64 T = se.getT();

		double P11 = R.data[0], P12 = R.data[1], P13 = R.data[2], P14 = T.x;
		double P21 = R.data[3], P22 = R.data[4], P23 = R.data[5], P24 = T.y;
		double P31 = R.data[6], P32 = R.data[7], P33 = R.data[8], P34 = T.z;

		tranPt.x = P11*origPt.x + P12*origPt.y + P13*origPt.z + P14*origPt.w;
		tranPt.y = P21*origPt.x + P22*origPt.y + P23*origPt.z + P24*origPt.w;
		tranPt.z = P31*origPt.x + P32*origPt.y + P33*origPt.z + P34*origPt.w;

		return tranPt;
	}
<p>.
Applies the transform specified by SpecialEuclidean to a homogenous point.<br>
<br>
p' = [R t]*p
</p>
<p>
Both origPt and tranPt can be the same instance.
</p>

@param se	 SpecialEuclidean transform. Not modified.
@param origPt Original coordinate of the point. Not modified.
@param tranPt Storage for transformed coordinate of the point. Point declared if null.  Modified.
@return Transformed point.