<s>[INST] returns the result of rotating this vector around a freely chosen axis and origin concode_field_sep VectorXYZ NULL_VECTOR concode_elem_sep double x concode_elem_sep double y concode_elem_sep VectorXYZ X_UNIT concode_elem_sep double z concode_elem_sep VectorXYZ Z_UNIT concode_elem_sep VectorXYZ Y_UNIT concode_field_sep VectorXZ xz concode_elem_sep VectorXYZ mult concode_elem_sep AxisAlignedBoundingBoxXZ getAxisAlignedBoundingBoxXZ concode_elem_sep double dot concode_elem_sep double distanceToXZ concode_elem_sep double distanceToXZ concode_elem_sep int hashCode concode_elem_sep VectorXYZ normalize concode_elem_sep VectorXYZ xyz concode_elem_sep VectorXYZ rotateX concode_elem_sep VectorXYZ rotateY concode_elem_sep VectorXYZ rotateZ concode_elem_sep VectorXYZ add concode_elem_sep VectorXYZ add concode_elem_sep VectorXYZ add concode_elem_sep double angleTo concode_elem_sep double lengthSquared concode_elem_sep VectorXYZ invert concode_elem_sep double distanceToSquared concode_elem_sep List<VectorXYZ> addYList concode_elem_sep VectorXYZ subtract concode_elem_sep VectorXYZ subtract concode_elem_sep double length concode_elem_sep VectorXYZ cross concode_elem_sep VectorXYZ crossNormalized concode_elem_sep double distanceTo concode_elem_sep double getX concode_elem_sep double getY concode_elem_sep double getZ concode_elem_sep VectorXYZ addY concode_elem_sep boolean equals concode_elem_sep VectorXYZ x concode_elem_sep VectorXYZ y concode_elem_sep String toString concode_elem_sep VectorXYZ z [/INST] VectorXYZ function ( double arg0 , VectorXYZ arg1 , VectorXYZ arg2 ) { VectorXYZ loc0 = this . subtract ( arg1 ) ; loc0 = loc0 . rotateVec ( arg0 , arg2 ) ; loc0 = loc0 . add ( arg1 ) ; return loc0 ; </s>