Code Search for Developers
 
 
  

ximath.cpp from aMSN at Krugle


Show ximath.cpp syntax highlighted

#include "ximage.h"
#include "ximath.h"
#include <math.h>

//this module should contain some classes for geometrical transformations
//usable with selections, etc... once it's done, that is. :)

CxPoint2::CxPoint2()
{
  x=y=0.0f;
}

CxPoint2::CxPoint2(float const x_, float const y_)
{
  x=x_;
  y=y_;
}

CxPoint2::CxPoint2(CxPoint2 const &p)
{
  x=p.x;
  y=p.y;
}

float CxPoint2::Distance(CxPoint2 const p2)
{
  return (float)sqrt((x-p2.x)*(x-p2.x)+(y-p2.y)*(y-p2.y));
}

float CxPoint2::Distance(float const x_, float const y_)
{
  return (float)sqrt((x-x_)*(x-x_)+(y-y_)*(y-y_));
}

CxRect2::CxRect2()
{
}

CxRect2::CxRect2(float const x1_, float const y1_, float const x2_, float const y2_)
{
  botLeft.x=x1_;
  botLeft.y=y1_;
  topRight.x=x2_;
  topRight.y=y2_;
}

CxRect2::CxRect2(CxRect2 const &p)
{
  botLeft=p.botLeft;
  topRight=p.topRight;
}

float CxRect2::Surface() const
/*
 * Returns the surface of rectangle.
 */
{
  return (topRight.x-botLeft.x)*(topRight.y-botLeft.y);
}

CxRect2 CxRect2::CrossSection(CxRect2 const &r2) const
/*
 * Returns crossection with another rectangle.
 */
{
  CxRect2 cs;
  cs.botLeft.x=max(botLeft.x, r2.botLeft.x);
  cs.botLeft.y=max(botLeft.y, r2.botLeft.y);
  cs.topRight.x=min(topRight.x, r2.topRight.x);
  cs.topRight.y=min(topRight.y, r2.topRight.y);
  if (cs.botLeft.x<=cs.topRight.x && cs.botLeft.y<=cs.topRight.y) {
    return cs;
  } else {
    return CxRect2(0,0,0,0);
  }//if
}

CxPoint2 CxRect2::Center() const
/*
 * Returns the center point of rectangle.
 */
{
  return CxPoint2((topRight.x+botLeft.x)/2.0f, (topRight.y+botLeft.y)/2.0f);
}

float CxRect2::Width() const
//returns rectangle width
{
  return topRight.x-botLeft.x;
}

float CxRect2::Height() const
//returns rectangle height
{
  return topRight.y-botLeft.y;
}





See more files for this project here

aMSN

A very nice MSN compatible messenger application, aMSN Messenger is a multiplatform MSN messenger clone. Works pretty much like its Windows based counterpart. Perfect for keeping in touch with those friends who have not yet seen the light. Works on linux

Project homepage: http://sourceforge.net/projects/amsn
Programming language(s): C,C++,PHP,Tcl,XML
License: other

  Rules.mk
  cximage.dsp
  cximage.dsw
  license.txt
  xfile.h
  ximabmp.cpp
  ximabmp.h
  ximacfg.h
  ximadef.h
  ximadsp.cpp
  ximaenc.cpp
  ximaexif.cpp
  ximage.cpp
  ximage.h
  ximagif.cpp
  ximagif.h
  ximahist.cpp
  ximainfo.cpp
  ximaint.cpp
  ximaiter.h
  ximajpg.cpp
  ximajpg.h
  ximalpha.cpp
  ximalyr.cpp
  ximapal.cpp
  ximapng.cpp
  ximapng.h
  ximasel.cpp
  ximatga.cpp
  ximatga.h
  ximath.cpp
  ximath.h
  ximatran.cpp
  xiofile.h
  xmemfile.cpp
  xmemfile.h