void SBoxedEntity::Move(float dt)
{
	SEntity::Move(dt);
	if (WChanged) __WChanged();
};

void SBoxedEntity::Visibility()
{
	if (ParentOpacity) Opacity = Parent ? Parent->Opacity : 1.0f;

	if (ParentVisible)
	{
		if (Parent)
		{
			Distance = Parent->Distance;
			SizeFactor = BaseSizeFactor*Parent->SizeFactor;
			Visible = Parent->Active && Parent->Visible;
			Point = Parent->Point;
		}
		else
			Visible = true;
		return;
	}

	Distance = Magnitude(WPosition - Scene->CameraPos);
	SizeFactor =
		Distance > 0.0f ?
			BaseSizeFactor*Magnitude(TransformVector(OneVector, XFWBox()) - WCenter())/Distance :
			BaseSizeFactor;
	Visible = Opacity > 0.0f && Scene->BoxVisible(Distant ? XFWBox()*Scene->XFCamTran : XFWBox(), ScrMin, ScrMax);
	if (Visible)
	{
		MaxScrSize = max(ScrMax.x - ScrMin.x, ScrMax.y - ScrMin.y);
		Point = MaxScrSize < 2.0f;
	}
	DS->Statistics.Aux1++;
};
