Esempio n. 1
0
CPoint CTrkObjList::GetAlignVal(int AlignMode,CTrkObj* pObj) const
{

   CPoint Val;

   CRect Rect;
   pObj->GetRect(Rect);

   switch (AlignMode)
   {
      case ALIGN_LEFT:
      {
         Val.x = Rect.left;
         Val.y = 0;
         break;
      }
      case ALIGN_TOP:
      {
         Val.x = 0;
         Val.y = Rect.top;
         break;
      }
      case ALIGN_RIGHT:
      {
         Val.x = Rect.right;
         Val.y = 0;
         break;
      }
      case ALIGN_BOTTOM:
      {
         Val.x = 0;
         Val.y = Rect.bottom;
         break;
      }
      case ALIGN_HCENTER:
      {
         Val.x = GetMiddle(Rect.left,Rect.right);
         Val.y = 0;
         break;
      }
      case ALIGN_VCENTER:
      {
         Val.x = 0;
         Val.y = GetMiddle(Rect.top,Rect.bottom);
         break;
      }
      default:
      {
         Val.x = 0;
         Val.y = 0;
         break;
      }
   }

   return(Val);

}
Esempio n. 2
0
LineSegment LineSegment::PerpendicularLineSegment(double scale)
{
	double angle = GetRadianFromX();
	angle += M_PI / 2;
	Point2d mid = GetMiddle();
	double len = GetLength() / 2;
	len *= scale;
	double x1 = mid.x + cos(angle) * len;
	double y1 = mid.y + sin(angle) * len;
	double x2 = mid.x - cos(angle) * len;
	double y2 = mid.y - sin(angle) * len;
	return LineSegment(Point2d(x1, y1), Point2d(x2, y2));
}
Esempio n. 3
0
void InflRect(LPCRECT pSrcRect,int Off,LPRECT pDstRect)
{

   pDstRect->left   = pSrcRect->left   - Off;
   pDstRect->top    = pSrcRect->top    - Off;
   pDstRect->right  = pSrcRect->right  + Off;
   pDstRect->bottom = pSrcRect->bottom + Off;

   if (Off < 0)
   {

      int XMiddle = GetMiddle(pSrcRect->right,pSrcRect->left);
      int YMiddle = GetMiddle(pSrcRect->bottom,pSrcRect->top);

      if (pDstRect->left   > XMiddle) pDstRect->left   = XMiddle;
      if (pDstRect->top    > YMiddle) pDstRect->top    = YMiddle;
      if (pDstRect->right  < XMiddle) pDstRect->right  = XMiddle;
      if (pDstRect->bottom < YMiddle) pDstRect->bottom = YMiddle;

   }

}
Esempio n. 4
0
CPoint CTrkObjList::GetCenterVal(int CenterMode,LPCRECT pRect) const
{

   CPoint Val;

   switch (CenterMode)
   {
      case CENTER_WIDTH:
      {
         Val.x = GetMiddle(pRect->left,pRect->right);
         Val.y = 0;
         break;
      }
      case CENTER_HEIGHT:
      {
         Val.x = 0;
         Val.y = GetMiddle(pRect->top,pRect->bottom);
         break;
      }
      case CENTER_BOTH:
      {
         Val.x = GetMiddle(pRect->left,pRect->right);
         Val.y = GetMiddle(pRect->top,pRect->bottom);
         break;
      }
      default:
      {
         Val.x = 0;
         Val.y = 0;
         break;
      }
   }

   return(Val);

}
Esempio n. 5
0
void CFracControlModel::updatePolygons()
{
	params.polygon.front().Set( rect.Left(), rect.Top() + GetMiddle(), rect.Right(), rect.Top() + GetMiddle() );
}
Esempio n. 6
0
/*
  1.21 distance calculates the distance of the center-points of the bounding-
  boxes of this face to the given face.
 
*/
double Face::distance(Face r) {
    return r.GetMiddle().distance(GetMiddle());
}