194 for (
short unsigned int x = 0; x < 2; x++)
196 for (
short unsigned int y = 0; y < 2; y++)
212 for (
short unsigned int x = 0; x < 2; x++)
214 for (
short unsigned int y = 0; y < 2; y++)
325 for (
unsigned short int i = 0;
i < 2;
i++)
327 for (
unsigned short int j = 0;
j < 2;
j++)
340 if (
i == x %2 &&
j == y%2 &&
depth)
346 }
else if (x % 2 && !
i) {
348 node->verts[0][
j][0] = left->verts[1][
j][0];
349 node->verts[0][
j][1] = left->verts[1][
j][1];
351 }
else if (y % 2 && !
j) {
353 node->verts[
i][0][0] = top->verts[
i][1][0];
354 node->verts[
i][0][1] = top->verts[
i][1][1];
395 +
parent->verts[1][1][0]) / 2.0;
397 +
parent->verts[1][1][1]) / 2.0;
408 +
parent->verts[1][1][0]) / 2.0;
410 +
parent->verts[1][1][1]) / 2.0;
424 for (
unsigned int i = 0;
i < 2;
i++)
426 for (
unsigned int j = 0;
j < 2;
j++)
482 unsigned short int flags = 0;
569 for (
unsigned int ix = 0;
ix < 2;
ix++)
571 for (
unsigned int iy = 0;
iy < 2;
iy++)
663 if (
node->verts[0][0][0] <
i->GetLowerX(
node->verts[0][0][1])
664 ||
node->verts[0][0][0] >
i->GetUpperX(
node->verts[0][0][1])
665 ||
node->verts[1][0][0] <
i->GetLowerX(
node->verts[1][0][1])
666 ||
node->verts[1][0][0] >
i->GetUpperX(
node->verts[1][0][1])
667 ||
node->verts[0][1][0] <
i->GetLowerX(
node->verts[0][1][1])
668 ||
node->verts[0][1][0] >
i->GetUpperX(
node->verts[0][1][1])
669 ||
node->verts[1][1][0] <
i->GetLowerX(
node->verts[1][1][1])
670 ||
node->verts[1][1][0] >
i->GetUpperX(
node->verts[1][1][1])
778 float xdx =
node->verts[0][0][0] -
node->verts[1][0][0],
816 unsigned int depth = 0, count = 0;
820 count += 1 << (
depth * 2);
826 unsigned int &x,
unsigned int &y,
832 unsigned int sub = 0;
835 for (
unsigned int d = 0;
d <
depth;
d++)
837 sub += (1 << (
d * 2));
846 const unsigned int y,
850 unsigned int add = 0;
854 add += 1 << (
depth * 2);
905 for (
unsigned int i = 0;
i < 2;
i++)
907 for (
unsigned int j = 0;
j < 2;
j++)
927 if (cur_tree_node != 0)
930 while (!done && cur_tree_node != 0)
932 unsigned int xd = x % 2;
933 unsigned int yd = y % 2;
939 if (cur_tree_node == 0 &&
xd == 1 &&
yd == 1)
966 if (cur_tree_node == 0)
982 return cur_tree_node;
const double min_length_difference
const unsigned short int vertex_side_flag_start
const unsigned short int patch_flag_y
const unsigned short int transform_fail_flag
const unsigned int min_depth
const unsigned int max_depth
const unsigned short int split_flag_y
const double offscreen_safety_margin
const unsigned short int split_flag_x
const unsigned short int patch_flag_x
unsigned int getWidth() const
PanoramaOptions::ProjectionFormat getProjection() const
@ ALBERS_EQUAL_AREA_CONIC
unsigned int getHeight() const
get panorama height
All variables of a source image.
bool isInside(vigra::Point2D p, bool ignoreMasks=false) const
check if a coordinate is inside the source image
A class for exchanging pointers to coordinates.
double(* vertex_c)[2][2]
The coordinate in the panorama, in its pixel space.
double(* tex_c)[2][2]
The coordinate in the source image ranging from 0 to 1.
An abstract base class for objects that calculate an approximate remap specified by quadrilatrials.
HuginBase::SrcPanoImage * image
void ClipFace(Coords *face)
Crop a face to the source image, return true if there is anything left.
HuginBase::PTools::Transform transform
A transform to use to remap the images.
bool GiveClipFaceResult(Coords *result)
Get a face that was produced by ClipFace.
double height
The sizes of the input images in pixels.
float scale
The number number of units between vertex coorinates that gives a pixel in the display.
virtual void UpdateAndResetIndex()
VisualizationState * visualization_state
void SetCrop()
Fill the crop values of the MeshRemapper from the source image.
const double GetXAdd360() const
const double GetYAdd360() const
const double GetMiddleY() const
const double GetLowerY() const
const double GetUpperY() const
const double GetRadius() const
const double GetUpperX() const
const double GetLowerX() const
const double GetMiddleX() const
unsigned int GetDepth(const unsigned int nodenum)
unsigned int GetParentId(const unsigned int nodenum)
void GetInputCoordinates(unsigned int node_num, double coords[2][2][2])
unsigned int GetTransform(unsigned int src_x, unsigned int src_y, unsigned int depth, unsigned int stop_x, unsigned int stop_y, double &dest_x, double &dest_y)
void GetPosition(const unsigned int nodenum, unsigned int &x, unsigned int &y, unsigned int &row_size, unsigned int &depth)
unsigned int GetIndex(const unsigned int x, const unsigned int y, const unsigned int row_size, unsigned int depth)
TreeNode nodes[1+4+16+64+256+1024+4096]
double tex_coords[2][2][2]
void TestSubdivide(unsigned int node_id)
void RecursiveUpdate(unsigned int node_id, unsigned int stretch_x, unsigned int stretch_y)
virtual bool GetNextFaceCoordinates(Coords *result)
Get the texture and vertex coordinates for the next face.
VertexCoordRemapper(HuginBase::Panorama *m_pano, HuginBase::SrcPanoImage *image, VisualizationState *visualization_state)
void DiscontinuityFlip(double vertex_c[2])
virtual void UpdateAndResetIndex()
unsigned int tree_node_id
void SetLengthAndAngle(TreeNode *node)
unsigned short int discontinuity_flags
double s_vertex_coords[2][2][2]
HuginBase::PanoramaOptions::ProjectionFormat output_projection
vigra::Rect2D GetVisibleArea()
virtual HuginBase::PanoramaOptions * GetOptions()
virtual OutputProjectionInfo * GetProjectionInfo()
include file for the hugin project
include file for the hugin project
std::vector< deghosting::BImagePtr > threshold(const std::vector< deghosting::FImagePtr > &inputImages, const double threshold, const uint16_t flags)
Threshold function used for creating alpha masks for images.