Пример #1
0
/**
 * TDefaultTracker constructor
 */
TDefaultTracker::TDefaultTracker()
{
	SO_NODEENGINE_CONSTRUCTOR(TDefaultTracker);

	//SO_NODE_ADD_FIELD( m_azimuth, ( gc::Pi ) );
	//SO_NODE_ADD_FIELD( m_zenith, ( 0.0 ) );

	//ConstructEngineOutput();
	// Define input fields and their default values
	SO_NODEENGINE_ADD_OUTPUT( outputTranslation, SoSFVec3f);
	SO_NODEENGINE_ADD_OUTPUT( outputRotation, SoSFRotation);
	SO_NODEENGINE_ADD_OUTPUT( outputScaleFactor, SoSFVec3f);
	SO_NODEENGINE_ADD_OUTPUT( outputScaleOrientation, SoSFRotation);
	SO_NODEENGINE_ADD_OUTPUT( outputCenter, SoSFVec3f);
}
Пример #2
0
SoVRMLCoordinateInterpolator::SoVRMLCoordinateInterpolator(void)
{
  PRIVATE(this) = new SoVRMLCoordinateInterpolatorP;

  SO_NODEENGINE_INTERNAL_CONSTRUCTOR(SoVRMLCoordinateInterpolator);

  SO_VRMLNODE_ADD_EMPTY_EXPOSED_MFIELD(keyValue);
  SO_NODEENGINE_ADD_OUTPUT(value_changed, SoMFVec3f);
}
Пример #3
0
/*!
  Constructor.
*/
SoVRMLTimeSensor::SoVRMLTimeSensor(void)
{
  PRIVATE(this) = new SoVRMLTimeSensorP;

  SO_NODEENGINE_INTERNAL_CONSTRUCTOR(SoVRMLTimeSensor);

  SO_VRMLNODE_ADD_EXPOSED_FIELD(cycleInterval, (1.0f));
  SO_VRMLNODE_ADD_EXPOSED_FIELD(enabled, (TRUE));
  SO_VRMLNODE_ADD_EXPOSED_FIELD(loop, (FALSE));
  SO_VRMLNODE_ADD_EXPOSED_FIELD(startTime, (0.0f));
  SO_VRMLNODE_ADD_EXPOSED_FIELD(stopTime, (0.0f));
  SO_VRMLNODE_ADD_EVENT_IN(timeIn); // private

  SO_NODEENGINE_ADD_OUTPUT(cycleTime, SoSFTime);
  SO_NODEENGINE_ADD_OUTPUT(fraction_changed, SoSFFloat);
  SO_NODEENGINE_ADD_OUTPUT(isActive, SoSFBool);
  SO_NODEENGINE_ADD_OUTPUT(time, SoSFTime);

  this->isActive.enable(FALSE);
  this->cycleTime.enable(FALSE);

  PRIVATE(this)->fraction = 0.0;
  PRIVATE(this)->cyclestart = 0.0;
  PRIVATE(this)->cycletime = 1.0;
  PRIVATE(this)->running = FALSE;
  PRIVATE(this)->loop = FALSE;
  PRIVATE(this)->starttime = 0.0;
  PRIVATE(this)->stoptime = 0.0;

  this->timeIn.enableNotify(FALSE);
  SoField * realtime = SoDB::getGlobalField("realTime");
  this->timeIn.connectFrom(realtime);

  // we always connect and just disable notification when timer
  // is not active, since it is currently not possible to disconnect
  // from a field in the inputChanged() method. inputChanged() is
  // triggered by notify(), and if a field is disconnected while the
  // master field is notifying, bad things will happen in
  // SoAuditorList.

  // FIXME: Maybe we should consider making a version of SoAuditorList
  // that handles disconnects in the notification loop? I think
  // it might be difficult though.   pederb, 2001-11-06
}
Пример #4
0
TrackerLinearFresnel::TrackerLinearFresnel()
:m_previousAimingPointType( 0 ),
 m_infoDisplayed( 0 )
{
	SO_NODEENGINE_CONSTRUCTOR( TrackerLinearFresnel );

	// Define input fields and their default values
	//SO_NODE_ADD_FIELD( m_azimuth, ( 0.0 ) );
	//SO_NODE_ADD_FIELD( m_zenith, ( 90.0 ) );


	// Define input fields and their default values
	SO_NODE_DEFINE_ENUM_VALUE( AimingPointType, Absolute );
	SO_NODE_DEFINE_ENUM_VALUE( AimingPointType, Relative );
	SO_NODE_SET_SF_ENUM_TYPE( typeOfAimingPoint, AimingPointType );
	SO_NODE_ADD_FIELD( typeOfAimingPoint, (Absolute) );
	m_infoDisplayed = new SoFieldSensor( TTrackerForAiming::updateTypeOfAimingPoint, this );
	m_infoDisplayed->setPriority( 1 );
	m_infoDisplayed->attach( &typeOfAimingPoint );

	SO_NODE_DEFINE_ENUM_VALUE( Axis, X );
	SO_NODE_DEFINE_ENUM_VALUE( Axis, Y );
	SO_NODE_DEFINE_ENUM_VALUE( Axis, Z );
	SO_NODE_SET_SF_ENUM_TYPE( activeAxis, Axis );
	SO_NODE_ADD_FIELD( activeAxis, (Z) );

	SO_NODE_ADD_FIELD( axisOrigin, ( 0.0, 0.0 ) );



	//ConstructEngineOutput();
	SO_NODEENGINE_ADD_OUTPUT( outputTranslation, SoSFVec3f);
	SO_NODEENGINE_ADD_OUTPUT( outputRotation, SoSFRotation);
	SO_NODEENGINE_ADD_OUTPUT( outputScaleFactor, SoSFVec3f);
	SO_NODEENGINE_ADD_OUTPUT( outputScaleOrientation, SoSFRotation);
	SO_NODEENGINE_ADD_OUTPUT( outputCenter, SoSFVec3f);

}