Exemplo n.º 1
0
  void renderWireframe(Renderer& renderer, const VolumeTest& volume) const
  {
    m_contained.renderWireframe(renderer, volume, Instance::localToWorld(), getSelectable().isSelected());

    m_curveNURBS.renderComponentsSelected(renderer, volume, localToWorld());
    m_curveCatmullRom.renderComponentsSelected(renderer, volume, localToWorld());
  }
Exemplo n.º 2
0
  void testSelect(Selector& selector, SelectionTest& test)
  {
    test.BeginMesh(localToWorld());
    SelectionIntersection best;

    m_contained.testSelect(selector, test, best);

    if(best.valid())
    {
      Selector_add(selector, getSelectable(), best);
    }
  }
Exemplo n.º 3
0
void Doom3GroupNode::testSelect(Selector& selector, SelectionTest& test)
{
	test.BeginMesh(localToWorld());
	SelectionIntersection best;

	// Pass the selection test to the Doom3Group class
	m_contained.testSelect(selector, test, best);

	// If the selectionIntersection is non-empty, add the selectable to the SelectionPool
	if (best.valid()) {
		Selector_add(selector, getSelectable(), best);
	}
}
Exemplo n.º 4
0
void LightInstance::renderWireframe (Renderer& renderer, const VolumeTest& volume) const
{
	m_contained.renderWireframe(renderer, volume, Instance::localToWorld(), getSelectable().isSelected());
}
void BufferSender::handleIO( bool readyRead, bool readyWrite ) 
{
   mc2dbg2 << "[BufferSender]: handleIO(" 
           << readyRead << ", " << readyWrite << ")" 
           << " state: " << ::getStateString( getState() )
           << " selectable: " << getSelectable() << endl;
   //
   // if we got read signal, which indicates error
   //
   if ( readyRead ) {
      m_impl->state = ERROR;
   } else if ( readyWrite ) {
      if ( getState() == CONNECTING ) {
         if ( m_impl->m_bufferSendTime.getTime() >= 1000 ) {
            mc2dbg << warn << "[BufferSender] Took " 
                   << m_impl->m_bufferSendTime << " to connect to "
                   << " destination " << getDestination() << endl;
         }
         m_impl->state = READY;
         mc2dbg2 << "[BufferSender]: connected to: " << getDestination() 
                 << endl;
      }

      // start send clock if we start writting
      if ( m_impl->bytesLeft == m_impl->buff.size() ) {
         m_impl->m_bufferSendTime = DebugClock();
      }
      //
      // send the buffer and reset timeout 
      //
      setWorking();
      send();


      if ( m_impl->state == DONE ) {
         // if send time is larger than 1 second print info
         if ( m_impl->m_bufferSendTime.getTime() >= 1000 ) {

            // note: should probably use timer stuff in MultiPacketSender or
            // something else, since this class is not specific to Packets 
            // (thus the extra size check here)
            if ( m_impl->buff.size() > 4 ) {
               Packet packet( m_impl->buff.data() + 4, m_impl->buff.size() - 4,
                              true );
               mc2dbg << warn << "[BufferSender] It took " 
                      << m_impl->m_bufferSendTime << " to send buffer."
                      <<  " Packet type: " 
                      << packet.getSubTypeAsString() << endl;
            }
         }
         // start idle timer now when we got nothing to do
         setIdle();
      }

   } else {
      // woohaa, would be very bad....and strange.
      MC2_ASSERT( readyRead && readyWrite );
   }

   // if state is error
   // set timers to 0 and let the "creator" 
   // of this selectable take care of it.
   if ( m_impl->state == ERROR ) {
      mc2dbg2 << "[BufferSender] socket error. socket:" << getSelectable() << endl;
      setTimeout( 0 );
   }

}