Ejemplo n.º 1
0
void GeneralPolygon::addEquilateralTriangle(float scaleX, float scaleY, const sf::Vector2f& displace)
{
	GeneralPolygon::Contour tri;

	sf::Vector2f scale(scaleX, scaleY);

	auto dot = [](const sf::Vector2f& a, const sf::Vector2f& b)-> sf::Vector2f {return sf::Vector2f(a.x*b.x, a.y*b.y);};
	
	tri.push_back( dot( sf::Vector2f(0.0f,0.5f) + displace, scale) );
	tri.push_back( dot( sf::Vector2f(-0.5f,-0.5f) + displace, scale) );
	tri.push_back( dot( sf::Vector2f(0.5f,-0.5f) + displace, scale) );

	addContour(tri);
}
Ejemplo n.º 2
0
void GeneralPolygon::addRectangle(float scaleX, float scaleY, const sf::Vector2f& displace)
{
	GeneralPolygon::Contour rect;

	sf::Vector2f scale(scaleX, scaleY);

	auto dot = [](const sf::Vector2f& a, const sf::Vector2f& b)-> sf::Vector2f {return sf::Vector2f(a.x*b.x, a.y*b.y);};
	
	rect.push_back( dot( sf::Vector2f(0.5f,0.5f), scale) + displace);
	rect.push_back( dot( sf::Vector2f(-0.5f,0.5f), scale) + displace );
	rect.push_back( dot( sf::Vector2f(-0.5f,-0.5f), scale) + displace );
	rect.push_back( dot( sf::Vector2f(0.5f,-0.5f), scale) + displace );

	addContour(rect);
}
Ejemplo n.º 3
0
void GeneralPolygon::addPentagram(float scaleX, float scaleY, const sf::Vector2f& displace)
{
	GeneralPolygon::Contour pentagram;

	sf::Vector2f scale(scaleX, scaleY);

	auto dot = [](const sf::Vector2f& a, const sf::Vector2f& b)-> sf::Vector2f {return sf::Vector2f(a.x*b.x, a.y*b.y);};

	float PI = atan(1)*4;
	float degreeToRad = PI/180.0f;
	
	pentagram.push_back( dot( sf::Vector2f(0.5f*cos(18*degreeToRad), 0.5f*sin(18*degreeToRad)), scale) + displace );
	pentagram.push_back( dot( sf::Vector2f(0.0f, 0.5f), scale) + displace );
	pentagram.push_back( dot( sf::Vector2f(0.5f*cos(162*degreeToRad), 0.5f*sin(162*degreeToRad)), scale) + displace );
	pentagram.push_back( dot( sf::Vector2f(0.5f*cos(234*degreeToRad), 0.5f*sin(234*degreeToRad)), scale) + displace );
	pentagram.push_back( dot( sf::Vector2f(0.5f*cos(306*degreeToRad), 0.5f*sin(306*degreeToRad)), scale) + displace );

	addContour(pentagram);
}
void Ctr2SufManager::readContour(const int filenum, char** fnames)
{
	clearOldContour();
	////clear processed data
	//clearPData();

	////clear partition data
	//clearPartition();

	////clear face contour data
	//clearFaceContour();
	//
	//clear mesh
	delete mesh;
	mesh = NULL;

	addContour(filenum, fnames);

}
Ejemplo n.º 5
0
void GeneralPolygon::addLetterE(float scaleX, float scaleY, const sf::Vector2f& displace)
{
	GeneralPolygon::Contour E;

	sf::Vector2f scale(scaleX, scaleY);

	auto dot = [](const sf::Vector2f& a, const sf::Vector2f& b)-> sf::Vector2f {return sf::Vector2f(a.x*b.x, a.y*b.y);};

	E.push_back( dot( sf::Vector2f(0.5f,0.5f), scale) + displace );
	E.push_back( dot( sf::Vector2f(-0.5f,0.5f), scale ) + displace );
	E.push_back( dot( sf::Vector2f(-0.5f,-0.5f), scale) + displace );
	E.push_back( dot( sf::Vector2f(0.5f,-0.5f), scale) + displace );
	E.push_back( dot( sf::Vector2f(0.5f,-0.3f), scale) + displace );
	E.push_back( dot( sf::Vector2f(-0.1f,-0.3f), scale) + displace );
	E.push_back( dot( sf::Vector2f(-0.1f,-0.1f), scale) + displace );
	E.push_back( dot( sf::Vector2f(0.5f,-0.1f), scale) + displace );
	E.push_back( dot( sf::Vector2f(0.5f,0.1f), scale) + displace );
	E.push_back( dot( sf::Vector2f(-0.1f,0.1f), scale) + displace );
	E.push_back( dot( sf::Vector2f(-0.1f,0.3f), scale) + displace );
	E.push_back( dot( sf::Vector2f(0.5f,0.3f), scale) + displace );

	addContour(E);
}
Ejemplo n.º 6
0
 void addHole(const std::vector<Vector2> &hole) {
   addContour(hole, true);
 }
Ejemplo n.º 7
0
 void addContour(const std::vector<Vector2> &contour) {
   addContour(contour, false);
 }