////File triangle.cpp

#include <iostream>
#include "math.h"
#include "triangle.h"

triangle::triangle()
{
	if(!registered)
	{
		figure::reg('T',"triangle",&triangle::create);
		registered=true;
	}
}

bool triangle::registered=false;

static triangle dummy_triangle;

void triangle::compute_area()
{
	area=sqrt((a+b+c)*(b+c-a)*(a+c-b)*(a-c+b))/4;
}
void triangle::compute_perim()
{
	perimeter=a+b+c;
}
void triangle::display_fig()
{
	std::cout<<"Figure shape is Triangle"<<std::endl;
	std::cout<<"First side length is "<<a<<std::endl;
	std::cout<<"Second side length is "<<b<<std::endl;
	std::cout<<"Last side length is "<<c<<std::endl;
	figure::display_fig();

}
void triangle::read_figure()
{
	do{
	std::cout<<"Enter the length of first side >";
	std::cin>>a;
    std::cout<<"Enter the length of second side >";
	std::cin>>b;
    std::cout<<"Enter the length of last side >";
	std::cin>>c;
	}while(!(a+b>c&&b+c>a&&a+c>b));
}

figure* triangle::create()
{
	return new triangle;
}

 
