Hugin trunk 0.1
Loading...
Searching...
No Matches
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
MeshRemapper Class Referenceabstract

An abstract base class for objects that calculate an approximate remap specified by quadrilatrials. More...

#include <MeshRemapper.h>

Inheritance diagram for MeshRemapper:
Inheritance graph

Classes

class  ArrayCoords
 A class for exchanging coordinates by value. More...
 
class  Coords
 A class for exchanging pointers to coordinates. More...
 

Public Member Functions

 MeshRemapper (HuginBase::Panorama *m_pano, HuginBase::SrcPanoImage *image, VisualizationState *visualization_state)
 
virtual ~MeshRemapper ()
 
virtual void UpdateAndResetIndex ()
 
virtual bool GetNextFaceCoordinates (Coords *result)=0
 Get the texture and vertex coordinates for the next face.
 

Protected Member Functions

void SetCrop ()
 Fill the crop values of the MeshRemapper from the source image.
 
void ClipFace (Coords *face)
 Crop a face to the source image, return true if there is anything left.
 
bool GiveClipFaceResult (Coords *result)
 Get a face that was produced by ClipFace.
 

Protected Attributes

VisualizationStatevisualization_state
 
HuginBase::Panoramam_pano
 
HuginBase::SrcPanoImageimage
 
float scale
 The number number of units between vertex coorinates that gives a pixel in the display.
 
double height
 The sizes of the input images in pixels.
 
double width
 
HuginBase::PTools::Transform transform
 A transform to use to remap the images.
 
HuginBase::SrcPanoImage::CropMode crop_mode
 Crop mode of the source image.
 
double crop_x1
 
double crop_x2
 
double crop_y1
 
double crop_y2
 
double circle_crop_centre_x
 
double circle_crop_centre_y
 
double circle_crop_radius_x
 
double circle_crop_radius_y
 
bool circle_crop
 

Private Attributes

std::vector< MeshRemapper::ArrayCoordsface_list
 List for results when clipping faces.
 

Detailed Description

An abstract base class for objects that calculate an approximate remap specified by quadrilatrials.

Each quadrilatrial has vertex coordinates and texture coordinates. The texture coordinates specify for each vertex a point on the image to be mapped to that vertex location, where the range 0 to 1 in either direction is the entirity of the image. The vertex locations are the coordinates in the output in pixels. (They are scaled down to fit in the preview).

A MeshManager then converts the faces specifed into a format sutible for the whatever graphics system is being used to draw them.

Definition at line 43 of file MeshRemapper.h.

Constructor & Destructor Documentation

◆ MeshRemapper()

MeshRemapper::MeshRemapper ( HuginBase::Panorama m_pano,
HuginBase::SrcPanoImage image,
VisualizationState visualization_state 
)

Definition at line 30 of file MeshRemapper.cpp.

References image, m_pano, threshold(), and visualization_state.

◆ ~MeshRemapper()

MeshRemapper::~MeshRemapper ( )
virtual

Definition at line 39 of file MeshRemapper.cpp.

Member Function Documentation

◆ ClipFace()

void MeshRemapper::ClipFace ( MeshRemapper::Coords face)
protected

Crop a face to the source image, return true if there is anything left.

SetCrop() must have been called beforehand with up to date information.

Returns
true if anything remains, false if the entire face was removed.

Definition at line 306 of file MeshRemapper.cpp.

References circle_crop, circle_crop_centre_x, circle_crop_centre_y, circle_crop_radius_x, circle_crop_radius_y, crop_x1, crop_x2, crop_y1, crop_y2, face_list, M_PI, MeshRemapper::Coords::tex_c, and threshold().

Referenced by TexCoordRemapper::GetNextFaceCoordinates(), and VertexCoordRemapper::GetNextFaceCoordinates().

◆ GetNextFaceCoordinates()

virtual bool MeshRemapper::GetNextFaceCoordinates ( Coords result)
pure virtual

Get the texture and vertex coordinates for the next face.

The coordinates are ordered [left / right][top / bottom][x coord / y coord].

Returns
false once specified all faces, true otherwise.

Implemented in ChoosyRemapper, LayoutRemapper, TexCoordRemapper, and VertexCoordRemapper.

Referenced by ChoosyRemapper::GetNextFaceCoordinates().

◆ GiveClipFaceResult()

bool MeshRemapper::GiveClipFaceResult ( Coords result)
protected

Get a face that was produced by ClipFace.

Parameters
resultPlace to copy the face to. The pointers in result must be valid.
Returns
true if a valid face was returned, false if there are no faces.

Definition at line 354 of file MeshRemapper.cpp.

References face_list, MeshRemapper::Coords::tex_c, and MeshRemapper::Coords::vertex_c.

Referenced by TexCoordRemapper::GetNextFaceCoordinates(), and VertexCoordRemapper::GetNextFaceCoordinates().

◆ SetCrop()

void MeshRemapper::SetCrop ( )
protected

◆ UpdateAndResetIndex()

void MeshRemapper::UpdateAndResetIndex ( )
virtual

Member Data Documentation

◆ circle_crop

bool MeshRemapper::circle_crop
protected

Definition at line 103 of file MeshRemapper.h.

Referenced by ClipFace(), VertexCoordRemapper::GetNextFaceCoordinates(), and SetCrop().

◆ circle_crop_centre_x

double MeshRemapper::circle_crop_centre_x
protected

Definition at line 101 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

◆ circle_crop_centre_y

double MeshRemapper::circle_crop_centre_y
protected

Definition at line 101 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

◆ circle_crop_radius_x

double MeshRemapper::circle_crop_radius_x
protected

Definition at line 102 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

◆ circle_crop_radius_y

double MeshRemapper::circle_crop_radius_y
protected

Definition at line 102 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

◆ crop_mode

HuginBase::SrcPanoImage::CropMode MeshRemapper::crop_mode
protected

Crop mode of the source image.

Definition at line 99 of file MeshRemapper.h.

Referenced by SetCrop().

◆ crop_x1

double MeshRemapper::crop_x1
protected

◆ crop_x2

double MeshRemapper::crop_x2
protected

◆ crop_y1

double MeshRemapper::crop_y1
protected

◆ crop_y2

double MeshRemapper::crop_y2
protected

◆ face_list

std::vector<MeshRemapper::ArrayCoords> MeshRemapper::face_list
private

List for results when clipping faces.

Definition at line 118 of file MeshRemapper.h.

Referenced by ClipFace(), and GiveClipFaceResult().

◆ height

double MeshRemapper::height
protected

The sizes of the input images in pixels.

Children should use this to scale their texture coordinates since the Tranform uses image pixels rather than scaling each image to the range 0 to 1.

Definition at line 94 of file MeshRemapper.h.

Referenced by TexCoordRemapper::GetNextFaceCoordinates(), VertexCoordRemapper::GetNextFaceCoordinates(), VertexCoordRemapper::RecursiveUpdate(), SetCrop(), TexCoordRemapper::SetSize(), ChoosyRemapper::UpdateAndResetIndex(), UpdateAndResetIndex(), and TexCoordRemapper::UpdateAndResetIndex().

◆ image

HuginBase::SrcPanoImage* MeshRemapper::image
protected

◆ m_pano

HuginBase::Panorama* MeshRemapper::m_pano
protected

Definition at line 84 of file MeshRemapper.h.

Referenced by MeshRemapper(), and ChoosyRemapper::UpdateAndResetIndex().

◆ scale

float MeshRemapper::scale
protected

The number number of units between vertex coorinates that gives a pixel in the display.

Definition at line 89 of file MeshRemapper.h.

Referenced by TexCoordRemapper::SetSize(), VertexCoordRemapper::TestSubdivide(), and UpdateAndResetIndex().

◆ transform

HuginBase::PTools::Transform MeshRemapper::transform
protected

◆ visualization_state

VisualizationState* MeshRemapper::visualization_state
protected

◆ width

double MeshRemapper::width
protected

The documentation for this class was generated from the following files: