コード例 #1
0
void rspfImageViewTransform::getViewToImageScale(rspfDpt& resultScale,
						  const rspfDpt& viewPoint,
						  const rspfDpt& deltaViewPointXY)const
{
  rspfDpt p1 = viewPoint;
  rspfDpt p2(viewPoint.x + deltaViewPointXY.x,
	      viewPoint.y);
  rspfDpt p3(viewPoint.x,
	      viewPoint.y + deltaViewPointXY.y);
  rspfDpt transformedP1;
  rspfDpt transformedP2;
  rspfDpt transformedP3;
  viewToImage(p1, transformedP1);
  viewToImage(p2, transformedP2);
  viewToImage(p3, transformedP3);
  rspfDpt deltaP1P2 = transformedP1 - transformedP2;
  rspfDpt deltaP1P3 = transformedP1 - transformedP3;
  double sumSquaredSqrtP1P2 = sqrt((deltaP1P2.x*deltaP1P2.x) +
                                   (deltaP1P2.y*deltaP1P2.y));
  double sumSquaredSqrtP1P3 = sqrt((deltaP1P3.x*deltaP1P3.x) +
                                   (deltaP1P3.y*deltaP1P3.y));
  resultScale.x = 0;
  resultScale.y = 0;
  if(sumSquaredSqrtP1P2 > FLT_EPSILON)
    {
      resultScale.x = sumSquaredSqrtP1P2/deltaViewPointXY.x;
    }
  if(sumSquaredSqrtP1P3 > FLT_EPSILON)
    {
      resultScale.y = sumSquaredSqrtP1P3/deltaViewPointXY.y;
    }
}
コード例 #2
0
rspfDpt rspfImageViewTransform::viewToImage(const rspfDpt& viewPoint)const
{
   rspfDpt tempPt;
   
   viewToImage(viewPoint, tempPt);
   
   return tempPt;
}
コード例 #3
0
ossimDpt ossimImageViewTransform::viewToImage(const ossimDpt& viewPoint)const
{
    ossimDpt tempPt;

    viewToImage(viewPoint, tempPt);

    return tempPt;
}
コード例 #4
0
void ossimIvtGeomXform::viewToGround(const ossimDpt& viewPt, ossimGpt& gpt)
{
  ossimDpt ipt;
  gpt.makeNan();
  viewToImage(viewPt, ipt);
  if(!ipt.hasNans())
  {
    imageToGround(ipt, gpt);
  }
}
コード例 #5
0
void ossimImageViewTransform::getViewToImageScale(ossimDpt& resultScale,
        const ossimDpt& viewPoint,
        const ossimDpt& deltaViewPointXY)const
{
    ossimDpt p1 = viewPoint;
    ossimDpt p2(viewPoint.x + deltaViewPointXY.x,
                viewPoint.y);
    ossimDpt p3(viewPoint.x,
                viewPoint.y + deltaViewPointXY.y);

    ossimDpt transformedP1;
    ossimDpt transformedP2;
    ossimDpt transformedP3;

    viewToImage(p1, transformedP1);
    viewToImage(p2, transformedP2);
    viewToImage(p3, transformedP3);

    ossimDpt deltaP1P2 = transformedP1 - transformedP2;
    ossimDpt deltaP1P3 = transformedP1 - transformedP3;

    // now compute the distances.
    double sumSquaredSqrtP1P2 = sqrt((deltaP1P2.x*deltaP1P2.x) +
                                     (deltaP1P2.y*deltaP1P2.y));
    double sumSquaredSqrtP1P3 = sqrt((deltaP1P3.x*deltaP1P3.x) +
                                     (deltaP1P3.y*deltaP1P3.y));

    resultScale.x = 0;
    resultScale.y = 0;

    if(sumSquaredSqrtP1P2 > FLT_EPSILON)
    {
        resultScale.x = sumSquaredSqrtP1P2/deltaViewPointXY.x;
    }
    if(sumSquaredSqrtP1P3 > FLT_EPSILON)
    {
        resultScale.y = sumSquaredSqrtP1P3/deltaViewPointXY.y;
    }
}
コード例 #6
0
void rspfImageViewTransform::inverse(const rspfDpt& input,
                                      rspfDpt& output) const
{
   viewToImage(input, output);
}
コード例 #7
0
void ossimImageViewTransform::inverse(const ossimDpt& input,
                                      ossimDpt& output) const
{
    viewToImage(input, output);
}