예제 #1
0
void CVX_FRegion::ClearRegion() //clears everything here...
{
	ResetRegion();
	
//	Fixed = false;
	DofFixed = DOF_NONE;
	Force = Vec3D<>(0,0,0);
	Torque = Vec3D<>(0,0,0);
	Displace = Vec3D<>(0,0,0);
	AngDisplace = Vec3D<>(0,0,0);
}
예제 #2
0
void CVX_FRegion::CreateSphRegion(Vec3D<> Pos, vfloat Rad)
{
	ResetRegion();

	Sphere = new CP_Sphere;
	Sphere->X = Pos.x;
	Sphere->Y = Pos.y;
	Sphere->Z = Pos.z;
	Sphere->Radius = Rad;
	pRegion = Sphere;
	Sphere->UpdateAspect();

}
예제 #3
0
void CVX_FRegion::CreateBoxRegion(Vec3D<> Pos, Vec3D<> Dim)
{
	ResetRegion();

	Box = new CP_Box;
	Box->X = Pos.x;
	Box->Y = Pos.y;
	Box->Z = Pos.z;
	Box->dX = Dim.x;
	Box->dY = Dim.y;
	Box->dZ = Dim.z;
	pRegion = Box;
	Box->UpdateAspect();
}
예제 #4
0
void CVX_FRegion::CreateCylRegion(Vec3D<> Pos, Vec3D<> Axis, vfloat Rad)
{
	ResetRegion();

	Cylinder = new CP_Cylinder;
	Cylinder->X = Pos.x;
	Cylinder->Y = Pos.y;
	Cylinder->Z = Pos.z;
	Cylinder->dX = Axis.x;
	Cylinder->dY = Axis.y;
	Cylinder->dZ = Axis.z;
	Cylinder->Radius = Rad;
	pRegion = Cylinder;
	Cylinder->UpdateAspect();
}
예제 #5
0
void DrawItemShape::OnPaint( Graphics &g )
{
	if(isChangeRegion())
	{
		ResetRegion();
	}
	auto region = getRegion();
	SolidBrush brush(DrawTools::ColorNormal);
	if (m_isFillPath)
	{
		if (StateNormal == m_state)
		{
			g.FillRegion(&brush, region.get());
		}
		else if (StateHovered == m_state)
		{
			g.FillRegion(&SolidBrush(DrawTools::ColorHovered), region.get());
		}
		else if (StateDisable == m_state)
		{
			g.FillRegion(&SolidBrush(DrawTools::ColorDisable), region.get());
		}
		else if (StateDown == m_state)
		{
			g.FillRegion(&SolidBrush(DrawTools::ColorDown), region.get());
		}
		else if (StateError == m_state)
		{
			g.FillRegion(&SolidBrush(DrawTools::ColorError), region.get());
		}
		else
		{
			g.FillRegion(&SolidBrush(m_fillColor), region.get());
		}
	}
	if (m_isDrawPath)
	{
		GraphicsPath path;
		path.StartFigure();
		for(auto itter = m_lines.begin();itter != m_lines.end() ; itter++ )
		{
			(*itter)->getPath(path);
		}
		path.CloseFigure();

		g.DrawPath(&Pen(m_drawColor),&path);
	}
}
예제 #6
0
void CVX_FRegion::CreateMeshRegion(CMesh* pMeshToAdd, Vec3D<> Pos, Vec3D<> Dim)
{
	ResetRegion();

	Mesh = new CP_Mesh;
	Mesh->X = Pos.x;
	Mesh->Y = Pos.y;
	Mesh->Z = Pos.z;
	Mesh->dX = Dim.x;
	Mesh->dY = Dim.y;
	Mesh->dZ = Dim.z;
	if (pMeshToAdd) Mesh->ThisMesh = *pMeshToAdd;
	pRegion = Mesh;
	Mesh->UpdateAspect();

}
예제 #7
0
CVX_FRegion::~CVX_FRegion(void)
{
	ResetRegion();
}
예제 #8
0
void CVX_FRegion::CreateMeshRegion(void)
{
	ResetRegion();
	Mesh = new CP_Mesh;
	pRegion = Mesh;
}
예제 #9
0
void CVX_FRegion::CreateSphRegion(void)
{
	ResetRegion();
	Sphere = new CP_Sphere;
	pRegion = Sphere;
}
예제 #10
0
void CVX_FRegion::CreateCylRegion() //use defaults
{
	ResetRegion();
	Cylinder = new CP_Cylinder;
	pRegion = Cylinder;
}
예제 #11
0
void CVX_FRegion::CreateBoxRegion(void) //use defaults
{
	ResetRegion();
	Box = new CP_Box;
	pRegion = Box;
}
예제 #12
0
const std::shared_ptr<Region>& DrawItemBase::getRegion()
{
	if(isChangeRegion()) ResetRegion();
	return m_region;
}