Q3map2:
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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user