disable fastnormalize for light: was increasing dirt from arealights, lighting with acute angle

Radiant:

binds...
	* QE tool: alt + m1 drag in primitives mode:
		click face = clicked faces shear
	* m3 in texbro: select texture w/o applying to selection
	* `: XYFocusOnSelected
	* ctrl + shift + e: Select Connected Entities
misc...
	* search in shortcuts list
	* edit shortcuts on m1 dbl click
	* edit shortcuts fix: could highlight a few rows for editing
	* texbro: toggle off hideUnused on loading a tag
	* fix of: undo something, select tex in texbro, no redo available
	* epsilon in resize brush selector to prevent perpendicular faces pickup
	* clone group entity primitives to separate entity on cloneSelectedMakeUnique
	* Focus on Selected option in Entity List (focus cam and center xy)
	* entity inspector: connected entities walker (select target / targeting / both)(focus)
This commit is contained in:
Garux
2017-08-02 09:21:32 +03:00
parent 461d008daa
commit dfce2da577
20 changed files with 424 additions and 44 deletions

View File

@@ -734,6 +734,50 @@ scene::Node& Node_Clone( scene::Node& node ){
return clone;
}
bool Node_instanceSelected( scene::Node& node );
class CloneAllSelected : public scene::Traversable::Walker
{
mutable scene::Path m_path;
public:
CloneAllSelected( scene::Node& root )
: m_path( makeReference( root ) ){
}
bool pre( scene::Node& node ) const {
if ( node.isRoot() ) {
return false;
}
if( Node_instanceSelected( node ) ){
m_path.push( makeReference( node_clone( node ) ) );
m_path.top().get().IncRef();
}
return true;
}
void post( scene::Node& node ) const {
if ( node.isRoot() ) {
return;
}
if( Node_instanceSelected( node ) ){
Node_getTraversable( m_path.parent() )->insert( m_path.top() );
m_path.top().get().DecRef();
m_path.pop();
}
}
};
scene::Node& Node_Clone_Selected( scene::Node& node ){
scene::Node& clone = node_clone( node );
scene::Traversable* traversable = Node_getTraversable( node );
if ( traversable != 0 ) {
traversable->traverse( CloneAllSelected( clone ) );
}
return clone;
}
typedef std::map<CopiedString, std::size_t> EntityBreakdown;