binds...
	* doubleClick/Enter in Entity inspector Class list = convert entities
	* ctrl during creating brush = cube brush

misc...
	* on worldspawn entity create/convert to one do most expected move-selected-primitives-to-worldspawn
	* convert point entity to group one = placeholder brush at origin + remove origin key
	* convert group entity to point one: set origin key to contained primitives center
	* fix uniform rotation operations for eclassmodel, miscmodel entities
	* scale miscmodel entities uniformly
	* added func_detail to world and detail filters
	* region->set_xy: using active projection, not just xy one; is subtractive (no region off before applying)
	* new brush prefab: icosahedron
	* refactored CSGTool, improved Hollow::diagonal algorithm stability

	improved view_cubiclipping.png
This commit is contained in:
Garux
2017-08-02 09:44:13 +03:00
parent 335dcb2fa8
commit 0139fa9de6
16 changed files with 547 additions and 430 deletions

View File

@@ -1622,16 +1622,13 @@ void Map_RegionSelectedBrushes( void ){
Map_RegionXY
===========
*/
void Map_RegionXY( float x_min, float y_min, float x_max, float y_max ){
Map_RegionOff();
g_region_mins[0] = x_min;
g_region_maxs[0] = x_max;
g_region_mins[1] = y_min;
g_region_maxs[1] = y_max;
g_region_mins[2] = g_MinWorldCoord + 64;
g_region_maxs[2] = g_MaxWorldCoord - 64;
void Map_RegionXY( const Vector3& min, const Vector3& max ){
//Map_RegionOff();
for( std::size_t i = 0; i < 3; ++i ){
g_region_mins[i] = std::max( g_region_mins[i], min[i] );
g_region_maxs[i] = std::min( g_region_maxs[i], max[i] );
}
Map_ApplyRegion();
}
@@ -2057,12 +2054,20 @@ void RegionOff(){
}
void RegionXY(){
Map_RegionXY(
g_pParentWnd->GetXYWnd()->GetOrigin()[0] - 0.5f * g_pParentWnd->GetXYWnd()->Width() / g_pParentWnd->GetXYWnd()->Scale(),
g_pParentWnd->GetXYWnd()->GetOrigin()[1] - 0.5f * g_pParentWnd->GetXYWnd()->Height() / g_pParentWnd->GetXYWnd()->Scale(),
g_pParentWnd->GetXYWnd()->GetOrigin()[0] + 0.5f * g_pParentWnd->GetXYWnd()->Width() / g_pParentWnd->GetXYWnd()->Scale(),
g_pParentWnd->GetXYWnd()->GetOrigin()[1] + 0.5f * g_pParentWnd->GetXYWnd()->Height() / g_pParentWnd->GetXYWnd()->Scale()
);
VIEWTYPE viewtype = GlobalXYWnd_getCurrentViewType();
int nDim1 = ( viewtype == YZ ) ? 1 : 0;
int nDim2 = ( viewtype == XY ) ? 1 : 2;
int nDim = static_cast<int>( viewtype );
XYWnd* wnd = g_pParentWnd->ActiveXY();
Vector3 min, max;
min[nDim1] = wnd->GetOrigin()[nDim1] - 0.5f * wnd->Width() / wnd->Scale();
min[nDim2] = wnd->GetOrigin()[nDim2] - 0.5f * wnd->Height() / wnd->Scale();
min[nDim] = g_MinWorldCoord + 64;
max[nDim1] = wnd->GetOrigin()[nDim1] + 0.5f * wnd->Width() / wnd->Scale();
max[nDim2] = wnd->GetOrigin()[nDim2] + 0.5f * wnd->Height() / wnd->Scale();
max[nDim] = g_MaxWorldCoord - 64;
Map_RegionXY( min, max );
SceneChangeNotify();
}