TDxInput

ISimpleDevice

COM interface exposing the methods of Device. Forced to use the same GUID as the original driver interface does. Provides both interface implementations (Dual), IDispatch and IUnknown for early and late binding.

Properties

Sensor

Returns an interface pointer to the associated Sensor object. For COM interop this must be marshaled explicitly to Interface. The DispId attribute states the vtable entry of the method.

Keyboard

Returns an interface pointer to the associated Keyboard object. For COM interop this must be marshaled explicitly to Interface. The DispId attribute states the vtable entry of the method.

Type

Returns type of the connected device. The DispId attribute states the vtable entry of the method.

IsConnected

Returns true if a device is connected with the driver. The DispId attribute states the vtable entry of the method.

Methods

Connect

Tries to find connected devices. For proper operation this method must be called before getting data from the device. The DispId attribute states the vtable entry of the method.

Disconnect

Disconnects already connected devices. Before the client application shuts down, this method should be called in order to disconnect event handlers and save application profiles. The DispId attribute states the vtable entry of the method.

LoadPreferences(System.String)

Loads the application profile in argument preferencesName. As usual in a COM environment the stings are of type BSTR, so marshal strings that way. The DispId attribute states the vtable entry of the method.

IKeyboard

COM interface exposing the methods of Keyboard. Forced to use the same GUID as the original driver interface does. Provides both interface implementations (Dual), IDispatch and IUnknown for early and late binding.

Properties

Keys

Returns number of keys the device offers. The DispId attribute states the vtable entry of the method.

ProgrammableKeys

Returns number of programmable keys the device offers. The DispId attribute states the vtable entry of the method.

Device

Returns an IDispatch pointer to the parent Device object associated with the Sensor. For COM interop compatibility, the object must be marshaled to IDispatch. (See Blender Plugin) The DispId attribute states the vtable entry of the method.

Methods

GetKeyLabel(System.Int32)

Returns the Label of the supplied key, if any. As usual in a COM environment the stings are of type BSTR, so marshal strings that way. "In" states that the argument will be passed to the structure. The DispId attribute states the vtable entry of the method.

GetKeyName(System.Int32)

Returns the Name of the supplied key, if any. As usual in a COM environment the stings are of type BSTR, so marshal strings that way. "In" states that the argument will be passed to the structure. The DispId attribute states the vtable entry of the method.

IsKeyDown(System.Int32)

Returns true if the supplied key is pressed down at the time. The DispId attribute states the vtable entry of the method.

IsKeyUp(System.Int32)

Returns true if the supplied key is up at the time. The DispId attribute states the vtable entry of the method.

Vector3D

Provides translational data in three dimensions and a length (euclidean norm). Implements the IVector3D interface which exposes its methods to COM. Because of that the ClassInterfaceType must be "None", otherwise the CLR provides another class interface (and does not use IVector3D). The class is forced to use the same GUID as the original CoClass does in order to be accessible by binary-only clients.

Properties

X

Represents the X component of the translation.

Y

Represents the Y component of the translation.

Z

Represents the Z component of the translation.

Length

Represents the length of the translation (euclidean length of the three components). If set to 0.0 all three components are set to 0.0, if set to 1.0 the components are scaled to be a unit vector.

Methods

Constructor: Vector3D

Vector3D constructor

IVector3D

COM interface exposing the methods of Vector3D. Forced to use the same GUID as the original driver interface does. Provides both interface implementations (Dual), IDispatch and IUnknown for early and late binding.

Properties

X

Gets or sets the x component of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

Y

Gets or sets the y component of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

Z

Gets or sets the z component of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

Length

Gets or sets the euclidean length of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

functions

Enumeration of possible functions in order to save numeric values to the config file (and not delegates..)

Preferences

Represents a configuration profile on a per-application basis. In order to load another profile just use the Setter of PreferencesName. If a profile of this name exists it will be loaded, if not a new default profile of this name will be created. This class is an extension of the orginal API, there is no such class exposed to COM. Thatswhy the Attribute ComVisible(false). So this is our implementation of the LoadPreferencesName() call of Device. The documentation says nothing about that so we can only guess the real functionality. This is our "educated" guess so ;)

Fields

path

Contains the exact path (with file name) to the XML config file.

Properties

RotationFunction

Gets or Sets the filter function which shall be applied to the rotational input data.

index

Gets or Sets the list index of the current profile.

TranslationFunction

Gets or Sets the Translation Filter Function of the current profile. Possible values: sin, cos, square, cube, none.

PreferencesName

Gets or Sets the Name of the current profile. When a name is set which is not in the list holding all known profiles, it will be created.

Count

Gets the count of stored profiles.

XScaleFactor

Gets or Sets the scaling factor the Translation X value will be multiplied with.

YScaleFactor

Gets or Sets the scaling factor the Translation Y value will be multiplied with.

ZScaleFactor

Gets or Sets the scaling factor the Translation Z value will be multiplied with.

XRotScaleFactor

Gets or Sets the scaling factor the Rotation X value will be multiplied with.

YRotScaleFactor

Gets or Sets the scaling factor the Rotation Y value will be multiplied with.

ZRotScaleFactor

Gets or Sets the scaling factor the Rotation Z value will be multiplied with.

RotationThreshold

Gets or Sets the Rotation threshold value.

TranslationThreshold

Gets or Sets the Translation threshold value.

Methods

ConstructPath

Creates the path variable to the XML config file. Usually this is "C:\Documents and Settings\%username%\Application Data\AerionInput\config.xml". If directories do not exist, they will be created.

loadConfig

Loads the XML config file stored in "path" and parses the config data to its local variables. If anything goes wrong, all fields will be initialized with defaults. So if file is malformed, a new valid config file will be created.

saveConfig

Writes all preferences into XML config file stored in "path". Must be called explicitly in order to save values for the next session. Overwrites any existing config file with the values in this object.

Constructor: Preferences

Calls ConstructPath() to have a valid path string

_ISimpleDeviceEvents_DeviceChangeEventHandler

Delegate declaration for DeviceChange event handler. Only states the return type of the event which is void for COM events and the signature of the event. This is implicitly COM visible and needed for COM to determine the signature of the event.

reserved: Not yet defined functionality.

_ISimpleDeviceEvents

COM Events publisher interface forced to use the same GUID as the original driver interface does. Must be IDispatch Interface for late binding, not standard dual.

Methods

DeviceChange(System.Int32)

The DeviceChange event is fired whenever a device is plugged in or pulled off. The reserved argument has no use for now.

Parameters

reserved:

ITDxInfo

COM interface exposing the methods of TDxInfo. Forced to use the same GUID as the original driver interface does. Provides both interface implementations (Dual), IDispatch and IUnknown for early and late binding.

Methods

RevisionNumber

Returns the revision number of the driver. As usual in a COM environment the stings are of type BSTR, so marshal strings that way. The DispId attribute states the vtable entry of the method.

IAngleAxis

COM interface exposing the methods of AngleAxis. Forced to use the same GUID as the original driver interface does. Provides both interface implementations (Dual), IDispatch and IUnknown for early and late binding.

Properties

X

Gets or sets the x component of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

Y

Gets or sets the y component of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

Z

Gets or sets the z component of the vector. The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

Angle

Gets or sets the angle of the vector (arbitrary units but euclidean norm). The DispId attribute states the vtable entry of the method. param: In states that the argument will be passed to the structure.

func

Filter function delegate. If you want to define a new filter function, use this signature for it (input value x and maximum value max). Then process the input value through your function (e.g. f(x)=x^4) and return this value. Possible extensions can be an accumulation of function values and returning a median of the last 5 values for example.

p_x:

p_max:

Return Value:

Sensor

Represents the motion sensor of the device. Encapsulates movements and twists of the cap or ball of the device. Holds data in the AngleAxis (for Rotation) and Vector3D (for Translation) members which are accessible trough COM. Processes (accelerate and multiply with constant) raw Input data. Fires SensorInput event whenever new Input is detected. Implements the ISensor interface which exposes its methods to COM. Because of that the ClassInterfaceType must be "None", otherwise the CLR provides another class interface (and does not use IVector3D). The class is forced to use the same GUID as the original CoClass does in order to be accessible by binary-only clients.

Fields

c_MaxValueTranslation

Maximum value for translation data used for scaling with filter function. THIS MUST BE ADJUSTED IF ANY DEVICE SENDS HIGHER VALUES!! At the time this value is far from optimal for 3DConnexion Devices but seems to work properly. These devices offer 11 bit precison, however setting MaxValue to 2048 causes the sensor not to move. Will digg in that later.

c_MaxValueRotation

Maximum value for translation data used for scaling with filter function. THIS MUST BE ADJUSTED IF ANY DEVICE SENDS HIGHER VALUES!! At the time this value is far from optimal for 3DConnexion Devices but seems to work properly. These devices offer 11 bit precison, however setting MaxValue to 2048 causes the sensor not to move. Will digg in that later.

c_Translation

Usage page for Translation Reports

c_Rotation

Usage page for Rotation Reports

m_IHidDevice

IHidDevice object of HidLibrary which raises events when Hid Reports are recieved.

IsDisposed

IDisposeable implementation help variable.

m_HidDeviceEvents_HidDataReceivedEventHandler

HidDataReceived event handler member variable storing the function pointer (delegate) to the method m_HidDevice will call back if a HidDataReceived is detected.

m_lock

Binary semaphore for locking event access.

Properties

XScaleFactor

Gets or Sets the X translation scaling factor which is mulitiplied with the raw input data from the Sensor before passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

YScaleFactor

Gets or Sets the Y translation scaling factor which is mulitiplied with the raw input data from the Sensor before passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

ZScaleFactor

Gets or Sets the Z translation scaling factor which is mulitiplied with the raw input data from the Sensor before passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

XRotScaleFactor

Gets or Sets the X rotation scaling factor which is mulitiplied with the raw input data from the Sensor before passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

YRotScaleFactor

Gets or Sets the Y rotation scaling factor which is mulitiplied with the raw input data from the Sensor before passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

ZRotScaleFactor

Gets or Sets the Z rotation scaling factor which is mulitiplied with the raw input data from the Sensor before passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

TranslationFunction

Sets the Translation filter function which takes the raw input data from the Sensor and passes it to this function as argument. The result of this will be passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

RotationFunction

Sets the Rotation filter function which takes the raw input data from the Sensor and passes it to this function as argument. The result of this will be passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

TranslationThreshold

Gets or Sets the Translation Threshold. The Vector3D.Length attribute must be > TranslationThreshold to be passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

RotationThreshold

Gets or Sets the Rotation Threshold. The AngleAxis.Angle attribute must be > RotationThreshold to be passed to the client. This property is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

Period

Gets the time frame the values of Translation and Rotation are scaled to.

Translation

Gets lengths of movement for all 3 axes.

Rotation

Gets angles for all 3 axes.

Device

Gets the parent Device object associated with the Sensor.

Methods

set_Function(TDxInput.functions)

Converts numeric function types to function pointers for filter processing. Used to convert the enum type coming from the XML config to delegate.

HidDataReceived(System.Object,HidLibrary.HidDataReceivedEventArgs)

Handles HidDataReceived events and processes incoming raw data from the Device. Fills m_Translation and m_Rotation objects with the filtered and scaled raw data. At the end fire SensorInput to notify clients.

Parameters

sender:

p_HidDataReceivedEventArgs:

none(System.Double,System.Double)

Null filter. Output = Input.

Parameters

p_x: input value

p_max: maximum value the function is scaled to

Return Value

Return Value:

sin(System.Double,System.Double)

Sinus filter. Output = sin(Input) [Shifted to origin]

Parameters

p_x: input value

p_max: maximum value the function is scaled to

Return Value

Return Value:

cube(System.Double,System.Double)

Cube filter. Output = Input*Input*Input [Shifted to origin]

Parameters

p_x: input value

p_max: maximum value the function is scaled to

Return Value

Return Value:

square(System.Double,System.Double)

Sqaure filter. Output = Input*Input [Shifted to origin]

Parameters

p_x: input value

p_max: maximum value the function is scaled to

Return Value

Return Value:

InitSensor(TDxInput.Device,HidLibrary.IHidDevice)

Binds the HidDataReceivedEvent to HidDataReceived() and sets parent Device object. This method is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

DestroySensor

Unbinds the HidDataReceivedEvent from HidDataReceived(). This method is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

Constructor: Sensor

Constructor which inits the TranslationFunction and RotationFunction attributes.

Finalize

Destructor supporting IDisposeable implementation.

Dispose

Suppress garbage collection of this object, take care of it yourself.

Dispose(System.Boolean)

Clean up managed and unmanged ressources by hand.

Parameters

Disposing:

ISensor

COM interface exposing the methods of Sensor. Forced to use the same GUID as the original driver interface does. Provides both interface implementations (Dual), IDispatch and IUnknown for early and late binding.

Properties

Translation

Holds lengths of movement for all 3 axes. For COM interop this must be marshaled explicitly to Interface. The DispId attribute states the vtable entry of the method.

Rotation

Holds angles for all 3 axes. For COM interop this must be marshaled explicitly to Interface. The DispId attribute states the vtable entry of the method.

Device

Returns an IDispatch pointer to the parent Device object associated with the Sensor. For COM interop compatibility, the object must be marshaled to IDispatch. (See Blender Plugin) The DispId attribute states the vtable entry of the method.

Period

Holds the time frame the values of Translation and Rotation are scaled to. The DispId attribute states the vtable entry of the method.

Device

Main device class representing the entire NDOF device encapsulating Keyboard and Sensor. Indirectly implements the _ISimpleDeviceEvents_Event interface via the ComSourceInterfaces attribute in order to properly expose events to COM. Implements the IDisposeable interface which helps to properly dispose this object and its events. Implements the ISimpleDevice interface which exposes its methods to COM. Because of that the ClassInterfaceType must be "None", otherwise the CLR provides another class interface (and does not use IAngleAxis). The class is forced to use the same GUID as the original CoClass does in order to be accessible by binary-only clients.

Fields

m_prefs

Object which encapsulates LoadPreferencesName() functionality.

m_HidControl

Used to communicate with the sigleton instance of HidControl for searching devices and registering DeviceChange events.

m_IHidDevice

Object of HidLibrary used to raise events when Hid Reports are recieved.

m_HidControlEvents_DeviceChangeEventHandler

DeviceChange event handler member variable storing the function pointer (delegate) to the method m_HidControl will call back if a DeviceChange is detected.

m_lock

Binary semaphore for locking event access.

Properties

Sensor

Returns the associated Sensor object.

Keyboard

Returns the associated Keyboard object.

Type

Returns type of the connected device.

IsConnected

Returns true if a device is connected with the driver.

Methods

IsAerion(HidLibrary.IHidDeviceInfo)

Predicate which queries p_IHidDeviceInfo.VendorID and p_IHidDeviceInfo.ProductID and returns true if an Aerion device is connected.

Parameters

p_IHidDeviceInfo:

Return Value

Return Value: boolean

IsSpaceExplorer(HidLibrary.IHidDeviceInfo)

Predicate which queries p_IHidDeviceInfo.VendorID and p_IHidDeviceInfo.ProductID and returns true if a SpaceExplorer device is connected.

Parameters

p_IHidDeviceInfo:

Return Value

Return Value: boolean

IsSpaceNavigator(HidLibrary.IHidDeviceInfo)

Predicate which queries p_IHidDeviceInfo.VendorID and p_IHidDeviceInfo.ProductID and returns true if a SpaceNavigator device is connected.

Parameters

p_IHidDeviceInfo:

Return Value

Return Value: boolean

IsSpaceTraveler(HidLibrary.IHidDeviceInfo)

Predicate which queries p_IHidDeviceInfo.VendorID and p_IHidDeviceInfo.ProductID and returns true if a SpaceTraveler device is connected.

Parameters

p_IHidDeviceInfo:

Return Value

Return Value: boolean

IsSpacePilot(HidLibrary.IHidDeviceInfo)

Predicate which queries p_IHidDeviceInfo.VendorID and p_IHidDeviceInfo.ProductID and returns true if a SpacePilot device is connected.

Parameters

p_IHidDeviceInfo:

Return Value

Return Value: boolean

ConnectAerion

Connects the AerionInput main instance with a plugged NDOF-device by passing a predicate. Instructs m_IHidDevice to handle incoming data and sets the global Type of the device.

Return Value

Return Value: true if device is connected

ConnectSpaceExplorer

Connects the AerionInput main instance with a plugged NDOF-device by passing a predicate. Instructs m_IHidDevice to handle incoming data and sets the global Type of the device.

Return Value

Return Value: true if device is connected

ConnectSpaceTraveler

Connects the AerionInput main instance with a plugged NDOF-device by passing a predicate. Instructs m_IHidDevice to handle incoming data and sets the global Type of the device.

Return Value

Return Value: true if device is connected

ConnectSpaceNavigator

Connects the AerionInput main instance with a plugged NDOF-device by passing a predicate. Instructs m_IHidDevice to handle incoming data and sets the global Type of the device.

Return Value

Return Value: true if device is connected

ConnectSpacePilot

Connects the AerionInput main instance with a plugged NDOF-device by passing a predicate. Instructs m_IHidDevice to handle incoming data and sets the global Type of the device.

Return Value

Return Value: true if device is connected

HidControlDeviceChange(System.Object,System.EventArgs)

Handles the HidControlDeviceChange event. First disconnects the current device from the driver, then calls Connect() which looks for new devices. Fires DeviceChange event in order to notify clients.

Parameters

sender:

e:

LoadPreferences(System.String)

Loads the application profile in argument preferencesName and updates all relevant fields. For now save the config file, as the Blender plugin does not disconnect (and thereby save the config file) correctly.

Connect

Look for connected supported devices and register for HidControl.DeviceChange event to be notified if devices are connected. If a supported device is found init the Sensor and the Keyboard. Then load initial "default" profile.

Disconnect

Disconnect a connected device. Stop the HidDevice processing input data, and deregister from HidDevice.DeviceChange event handler. Save the config file.

Constructor: Device

Default constructor needed by COM to create objects.

Finalize

Destructor supporting IDisposeable implementation.

Dispose

Suppress garbage collection of this object, take care of it yourself.

Dispose(System.Boolean)

Clean up managed and unmanged ressources by hand.

Parameters

Disposing:

_ISensorEvents_SensorInputEventHandler

Delegate declaration for SensorInput event handler. Only states the return type of the event which is void for COM events and the signature of the event. This is implicitly COM visible and needed for COM to determine the signature of the event.

_ISensorEvents

COM Events publisher interface forced to use the same GUID as the original driver interface does. Must be IDispatch Interface for late binding, not standard dual.

Methods

SensorInput

The SensorInput event is fired whenever the Sensor recieves valid data from the device.

_IKeyboardEvents_KeyDownEventHandler

Delegate declaration for KeyDown event handler. Only states the return type of the event which is void for COM events and the signature of the event. This is implicitly COM visible and needed for COM to determine the signature of the event.

keyCode: KeyCode of the button which is pressed down.

_IKeyboardEvents_KeyUpEventHandler

Delegate declaration for KeyUp event handler. Only states the return type of the event which is void for COM events and the signature of the event. This is implicitly COM visible and needed for COM to determine the signature of the event.

keyCode: KeyCode of the button which pulled up.

_IKeyboardEvents

COM Events publisher interface forced to use the same GUID as the original driver interface does. Must be IDispatch Interface for late binding, not standard dual.

Methods

KeyDown(System.Int32)

The KeyDown event is fired whenever a key is pressed. The keyCode argument contains the number of the key that fired.

Parameters

keyCode:

KeyUp(System.Int32)

The KeyUp event is fired whenever a key is released. The keyCode argument contains the number of the key that fired.

Parameters

keyCode:

TDxInfo

Provides information about the used Revision of the driver. Implements the ITDxInfo interface which exposes its methods to COM. Because of that the ClassInterfaceType must be "None", otherwise the CLR provides another class interface (and does not use ITDxInfo). The class is forced to use the same GUID as the original CoClass does in order to be accessible by binary-only clients.

Methods

RevisionNumber

Returns the revision number of the driver. It is not implemented as a classic getter method in the original driver but as a simple constant return function.

Return Value

Return Value: constant string c_RevisionNumber

Constructor: TDxInfo

TDxInfo constructor

Keyboard

Represents the keys of the device. Holds boolean array with the state of all keys. Fires KeyUp and KeyDown events whenever Keys are pressed and released. Implements the IKeyboard interface which exposes its methods to COM. Because of that the ClassInterfaceType must be "None", otherwise the CLR provides another class interface (and does not use IVector3D). The class is forced to use the same GUID as the original CoClass does in order to be accessible by binary-only clients.

Fields

c_Button

Usage page for Button Reports

m_KeyDownList

BitArray containing one bit (0 = up, 1 = down) for each key of the device.

m_IHidDevice

IHidDevice object of HidLibrary which raises events when Hid Reports are recieved.

IsDisposed

IDisposeable implementation help variable.

m_HidDeviceEvents_HidDataReceivedEventHandler

HidDataReceived event handler member variable storing the function pointer (delegate) to the method m_HidDevice will call back if a HidDataReceived is detected.

m_lock

Binary semaphore for locking event access.

Properties

Keys

Returns number of keys the device offers.

Device

Returns the parent Device object associated with the Sensor.

ProgrammableKeys

Returns number of programmable keys the device offers.

Methods

HidDataReceived(System.Object,HidLibrary.HidDataReceivedEventArgs)

Handles HidDataReceived events and processes incoming raw data from the Device. Fills BitArray m_KeyDownList with key press data. At the end fire KeyDown or KeyUp to notify clients.

Parameters

sender:

p_HidDataReceivedEventArgs:

GetKeyName(System.Int32)

Returns the Name of the supplied key, if any.

GetKeyLabel(System.Int32)

Returns the Label of the supplied key, if any.

IsKeyUp(System.Int32)

Returns true if the supplied key is up at the time.

IsKeyDown(System.Int32)

Returns true if the supplied key is pressed down at the time.

InitKeyboard(TDxInput.Device,HidLibrary.IHidDevice)

Binds the HidDataReceivedEvent to HidDataReceived() and sets parent Device object. TODO: Send feature report to device to query number of keys. This method is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

DestroyKeyboard

Unbinds the HidDataReceivedEvent from HidDataReceived(). This method is an extension of the orginal API, which is not exposed to COM. Thatswhy the Attribute ComVisible(false).

Constructor: Keyboard

Default constructor needed by COM to create objects.

Finalize

Destructor supporting IDisposeable implementation.

Dispose

Suppress garbage collection of this object, take care of it yourself.

Dispose(System.Boolean)

Clean up managed and unmanged ressources by hand.

Parameters

Disposing:

AngleAxis

Provides rotational data in three dimensions and an angle in arbitrary units (euclidean norm). Implements the IAngleAxis interface which exposes its methods to COM. Because of that the ClassInterfaceType must be "None", otherwise the CLR provides another class interface (and does not use IAngleAxis). The class is forced to use the same GUID as the original CoClass does in order to be accessible by binary-only clients.

Properties

X

Represents the X component of the rotation

Y

Represents the Y component of the rotation

Z

Represents the Z component of the rotation

Angle

Represents the angle of the rotation (euclidean length of the three components). If set to 0.0 all three components are set to 0.0, too.

Methods

Constructor: AngleAxis

AngleAxis constructor