Classes | Functions
contrib/mul/vimt3d/vimt3d_transform_3d.h File Reference

A class to define and apply a 3D transformation up to affine. More...

#include <vgl/vgl_point_3d.h>
#include <vgl/vgl_vector_3d.h>
#include <vnl/io/vnl_io_matrix.h>
#include <vsl/vsl_binary_io.h>
#include <vcl_iosfwd.h>
#include <vnl/vnl_quaternion.h>

Go to the source code of this file.

Classes

class  vimt3d_transform_3d
 A class to define and apply a 3D transform. More...

Functions

vimt3d_transform_3d operator* (const vimt3d_transform_3d &L, const vimt3d_transform_3d &R)
 Calculates the product LR.
void vsl_b_write (vsl_b_ostream &bfs, const vimt3d_transform_3d &b)
 Binary file stream output operator for class reference.
void vsl_b_read (vsl_b_istream &bfs, vimt3d_transform_3d &b)
 Binary file stream input operator for class reference.
vcl_ostream & operator<< (vcl_ostream &os, const vimt3d_transform_3d &b)
 Stream output operator for class reference.
void vsl_print_summary (vcl_ostream &afs, const vimt3d_transform_3d &b)
 Stream output operator for class reference.
bool vimt3d_transform_is_zoom_only (const vimt3d_transform_3d &transf, const double zero_tol=1e-9)
 Test whether a 3D transform is zoom-only or lesser.

Detailed Description

A class to define and apply a 3D transformation up to affine.

Author:
Graham Vincent, Tim Cootes

Definition in file vimt3d_transform_3d.h.


Function Documentation

vimt3d_transform_3d operator* ( const vimt3d_transform_3d L,
const vimt3d_transform_3d R 
)

Calculates the product LR.

Parameters:
LTransform
RTransform
Returns:
Transform LR = R followed by L

full multiplication - inefficient but works for

full multiplication - inefficient but works for

Definition at line 797 of file vimt3d_transform_3d.cxx.

vcl_ostream& operator<< ( vcl_ostream &  os,
const vimt3d_transform_3d b 
)

Stream output operator for class reference.

Definition at line 1149 of file vimt3d_transform_3d.cxx.

bool vimt3d_transform_is_zoom_only ( const vimt3d_transform_3d transf,
const double  zero_tol = 1e-9 
)

Test whether a 3D transform is zoom-only or lesser.

i.e. there may be translation and (anisotropic) scaling but no rotation.

Note:
This tests only for a commonly-occurring special case; there may be other zoom-only transforms that are not detected.
Parameters:
zero_tolUsed for testing whether elements are zero or not.

Definition at line 1163 of file vimt3d_transform_3d.cxx.

void vsl_b_read ( vsl_b_istream bfs,
vimt3d_transform_3d b 
)

Binary file stream input operator for class reference.

Definition at line 1142 of file vimt3d_transform_3d.cxx.

void vsl_b_write ( vsl_b_ostream bfs,
const vimt3d_transform_3d b 
)

Binary file stream output operator for class reference.

Definition at line 1135 of file vimt3d_transform_3d.cxx.

void vsl_print_summary ( vcl_ostream &  afs,
const vimt3d_transform_3d b 
) [inline]

Stream output operator for class reference.

Definition at line 373 of file vimt3d_transform_3d.h.