Functions
contrib/mul/vimt3d/vimt3d_transform_3d.cxx File Reference

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

#include "vimt3d_transform_3d.h"
#include <vcl_cassert.h>
#include <vcl_cstdlib.h>
#include <vcl_sstream.h>
#include <vsl/vsl_indent.h>
#include <vnl/vnl_matrix_fixed.h>
#include <vnl/vnl_vector.h>
#include <vnl/algo/vnl_determinant.h>
#include <vnl/vnl_math.h>
#include <vul/vul_string.h>
#include <vul/vul_sprintf.h>
#include <mbl/mbl_read_props.h>
#include <mbl/mbl_exception.h>
#include <mbl/mbl_parse_sequence.h>

Go to the source code of this file.

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.
bool vimt3d_transform_is_zoom_only (const vimt3d_transform_3d &transf, const double zero_tol)
 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.cxx.


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

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.