MeshRemapper Class Reference

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

#include <MeshRemapper.h>

Inheritance diagram for MeshRemapper:

Inheritance graph
[legend]
List of all members.

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
 The sizes of the input images in pixels.
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 HuginBase::Panorama m_pano,
HuginBase::SrcPanoImage image,
VisualizationState visualization_state
 

Definition at line 32 of file MeshRemapper.cpp.

References image, m_pano, and visualization_state.

MeshRemapper::~MeshRemapper  )  [virtual]
 

Definition at line 41 of file MeshRemapper.cpp.


Member Function Documentation

void MeshRemapper::ClipFace 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 308 of file MeshRemapper.cpp.

References circle_crop_centre_x, circle_crop_centre_y, A_Polygon::Clip(), A_Polygon::ConvertToQuads(), crop_x1, crop_x2, crop_y1, crop_y2, face_list, M_PI, and MeshRemapper::Coords::tex_c.

Referenced by VertexCoordRemapper::GetNextFaceCoordinates(), and TexCoordRemapper::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 MeshManager::MeshInfo::CompileList(), and ChoosyRemapper::GetNextFaceCoordinates().

bool MeshRemapper::GiveClipFaceResult Coords result  )  [protected]
 

Get a face that was produced by ClipFace.

Parameters:
result Place 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 356 of file MeshRemapper.cpp.

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

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

void MeshRemapper::SetCrop  )  [protected]
 

Fill the crop values of the MeshRemapper from the source image.

Definition at line 61 of file MeshRemapper.cpp.

References circle_crop, circle_crop_centre_x, circle_crop_centre_y, circle_crop_radius_x, circle_crop_radius_y, crop_mode, crop_x1, crop_x2, crop_y1, crop_y2, and image.

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

void MeshRemapper::UpdateAndResetIndex  )  [virtual]
 

Reimplemented in ChoosyRemapper, LayoutRemapper, TexCoordRemapper, and VertexCoordRemapper.

Definition at line 45 of file MeshRemapper.cpp.

References VisualizationState::GetScale(), height, image, scale, visualization_state, and width.

Referenced by MeshManager::MeshInfo::CompileList(), VertexCoordRemapper::UpdateAndResetIndex(), and ChoosyRemapper::UpdateAndResetIndex().


Member Data Documentation

bool MeshRemapper::circle_crop [protected]
 

Definition at line 103 of file MeshRemapper.h.

Referenced by SetCrop().

double MeshRemapper::circle_crop_centre_x [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

double MeshRemapper::circle_crop_centre_y [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

double MeshRemapper::circle_crop_radius_x [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by SetCrop().

double MeshRemapper::circle_crop_radius_y [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by SetCrop().

HuginBase::SrcPanoImage::CropMode MeshRemapper::crop_mode [protected]
 

Crop mode of the source image.

Definition at line 99 of file MeshRemapper.h.

Referenced by SetCrop().

double MeshRemapper::crop_x1 [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

double MeshRemapper::crop_x2 [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

double MeshRemapper::crop_y1 [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

double MeshRemapper::crop_y2 [protected]
 

Definition at line 100 of file MeshRemapper.h.

Referenced by ClipFace(), and SetCrop().

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

List for results when clipping faces.

Reimplemented in TexCoordRemapper.

Definition at line 118 of file MeshRemapper.h.

Referenced by ClipFace(), and GiveClipFaceResult().

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 UpdateAndResetIndex().

HuginBase::SrcPanoImage* MeshRemapper::image [protected]
 

Definition at line 85 of file MeshRemapper.h.

Referenced by MeshRemapper(), SetCrop(), and UpdateAndResetIndex().

HuginBase::Panorama* MeshRemapper::m_pano [protected]
 

Definition at line 84 of file MeshRemapper.h.

Referenced by MeshRemapper().

float MeshRemapper::scale [protected]
 

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

Reimplemented in LayoutRemapper.

Definition at line 89 of file MeshRemapper.h.

Referenced by UpdateAndResetIndex().

HuginBase::PTools::Transform MeshRemapper::transform [protected]
 

A transform to use to remap the images.

Definition at line 96 of file MeshRemapper.h.

VisualizationState* MeshRemapper::visualization_state [protected]
 

Definition at line 83 of file MeshRemapper.h.

Referenced by MeshRemapper(), and UpdateAndResetIndex().

double MeshRemapper::width [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 UpdateAndResetIndex().


The documentation for this class was generated from the following files:
Generated on Mon Sep 22 01:25:54 2014 for Hugintrunk by  doxygen 1.3.9.1