Tree @66287438-9f57-4620-9b78-9694240b2927/upstream (Download .tar.gz)
- ..
- common.i
- core.i
- dcmodule.i
- dialogs.i
- exceptions.i
- framesmodule.i
- freefuncs.i
- fx3d.i
- FX4Splitter.i
- FX7Segment.i
- FXAccelTable.i
- FXApp.i
- FXArrowButton.i
- FXBitmap.i
- FXBitmapFrame.i
- FXBitmapView.i
- FXBMPIcon.i
- FXBMPImage.i
- FXButton.i
- FXCanvas.i
- FXCheckButton.i
- FXChoiceBox.i
- FXColorBar.i
- FXColorDialog.i
- FXColorList.i
- FXColorRing.i
- FXColorSelector.i
- FXColorWell.i
- FXColorWheel.i
- FXComboBox.i
- FXComposeContext.i
- FXComposite.i
- FXCURCursor.i
- FXCursor.i
- FXDataTarget.i
- FXDC.i
- FXDCPrint.i
- FXDCWindow.i
- FXDebugTarget.i
- fxdefs.i
- FXDelegator.i
- FXDial.i
- FXDialogBox.i
- FXDict.i
- FXDirBox.i
- FXDirDialog.i
- FXDirList.i
- FXDirSelector.i
- FXDockBar.i
- FXDockHandler.i
- FXDockSite.i
- FXDockTitle.i
- FXDocument.i
- FXDragCorner.i
- FXDrawable.i
- FXDriveBox.i
- FXExtentd.i
- FXExtentf.i
- FXFileDialog.i
- FXFileDict.i
- FXFileList.i
- FXFileSelector.i
- FXFileStream.i
- FXFoldingList.i
- FXFont.i
- FXFontDialog.i
- FXFontSelector.i
- FXFrame.i
- FXGIFCursor.i
- FXGIFIcon.i
- FXGIFImage.i
- FXGLCanvas.i
- FXGLContext.i
- FXGLObject.i
- FXGLShape.i
- FXGLViewer.i
- FXGLVisual.i
- FXGradientBar.i
- FXGroupBox.i
- FXHeader.i
- FXHorizontalFrame.i
- FXICOIcon.i
- FXICOImage.i
- FXIcon.i
- FXIconDict.i
- FXIconList.i
- FXIconSource.i
- FXId.i
- FXImage.i
- FXImageFrame.i
- FXImageView.i
- FXInputDialog.i
- FXJPGIcon.i
- FXJPGImage.i
- FXKnob.i
- FXLabel.i
- FXList.i
- FXListBox.i
- FXMainWindow.i
- FXMat3d.i
- FXMat3f.i
- FXMat4d.i
- FXMat4f.i
- FXMatrix.i
- FXMDIButton.i
- FXMDIChild.i
- FXMDIClient.i
- FXMemoryBuffer.i
- FXMemoryStream.i
- FXMenuBar.i
- FXMenuButton.i
- FXMenuCaption.i
- FXMenuCascade.i
- FXMenuCheck.i
- FXMenuCommand.i
- FXMenuPane.i
- FXMenuRadio.i
- FXMenuSeparator.i
- FXMenuTitle.i
- FXMessageBox.i
- FXObject.i
- FXOptionMenu.i
- FXPacker.i
- FXPCXIcon.i
- FXPCXImage.i
- FXPicker.i
- FXPNGIcon.i
- FXPNGImage.i
- FXPoint.i
- FXPopup.i
- FXPPMIcon.i
- FXPPMImage.i
- FXPrintDialog.i
- FXProgressBar.i
- FXProgressDialog.i
- FXQuatd.i
- FXQuatf.i
- FXRadioButton.i
- FXRanged.i
- FXRangef.i
- FXRealSlider.i
- FXRealSpinner.i
- FXRecentFiles.i
- FXRectangle.i
- FXRegion.i
- FXRegistry.i
- FXReplaceDialog.i
- FXRGBIcon.i
- FXRGBImage.i
- FXRootWindow.i
- FXRuler.i
- FXRulerView.i
- FXScintilla.i
- FXScrollArea.i
- FXScrollBar.i
- FXScrollPane.i
- FXScrollWindow.i
- FXSearchDialog.i
- FXSeparator.i
- FXSettings.i
- FXShell.i
- FXShutter.i
- FXSize.i
- FXSlider.i
- FXSphered.i
- FXSpheref.i
- FXSpinner.i
- FXSplashWindow.i
- FXSplitter.i
- FXSpring.i
- FXStatusBar.i
- FXStatusLine.i
- FXStream.i
- FXStringDict.i
- FXSwitcher.i
- FXTabBar.i
- FXTabBook.i
- FXTabItem.i
- FXTable.i
- FXText.i
- FXTextField.i
- FXTGAIcon.i
- FXTGAImage.i
- FXTIFIcon.i
- FXTIFImage.i
- FXToggleButton.i
- FXToolBar.i
- FXToolBarGrip.i
- FXToolBarShell.i
- FXToolBarTab.i
- FXToolTip.i
- FXTopWindow.i
- FXTranslator.i
- FXTreeList.i
- FXTreeListBox.i
- FXTriStateButton.i
- FXURL.i
- FXVec2d.i
- FXVec2f.i
- FXVec3d.i
- FXVec3f.i
- FXVec4d.i
- FXVec4f.i
- FXVerticalFrame.i
- FXVisual.i
- FXWindow.i
- FXWizard.i
- FXXBMIcon.i
- FXXBMImage.i
- FXXPMIcon.i
- FXXPMImage.i
- handlers.i
- iconlistmodule.i
- icons.i
- ignore-message-handlers.rb
- image.i
- labelmodule.i
- layout.i
- listmodule.i
- macros.i
- markfuncs.i
- mdi.i
- menumodule.i
- README
- ruby-typemaps.i
- scintilla.i
- table-module.i
- text-module.i
- treelist-module.i
- ui.i
FXQuatf.i @66287438-9f57-4620-9b78-9694240b2927/upstream — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | /***********************************************************************
* FXRuby -- the Ruby language bindings for the FOX GUI toolkit.
* Copyright (c) 2001-2009 by Lyle Johnson. All Rights Reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* For further information please contact the author by e-mail
* at "[email protected]".
***********************************************************************/
%rename("adjust!") FXQuatf::adjust();
%rename("arc!") FXQuatf::arc(const FXVec3f& a,const FXVec3f& b);
%rename("lerp!") FXQuatf::lerp(const FXQuatf& u,const FXQuatf& v,FXfloat f);
/// Single-precision quaternion
class FXQuatf : public FXVec4f {
public:
/// Construct
FXQuatf();
/// Construct from axis and angle
FXQuatf(const FXVec3f& axis,FXfloat phi=0.0);
/// Construct from euler angles yaw (z), pitch (y), and roll (x)
FXQuatf(FXfloat roll,FXfloat pitch,FXfloat yaw);
/// Construct quaternion from axes
FXQuatf(const FXVec3f& ex,const FXVec3f& ey,const FXVec3f& ez);
/// Construct quaternion from 3x3 matrix
FXQuatf(const FXMat3f& mat);
/// Construct from components
FXQuatf(FXfloat x,FXfloat y,FXfloat z,FXfloat w);
/// Adjust quaternion length
FXQuatf& adjust();
/// Set quaternion from axis and angle
void setAxisAngle(const FXVec3f& axis,FXfloat phi=0.0f);
%extend {
/// Obtain axis and angle from quaternion
VALUE getAxisAngle() const {
FXVec3f axis;
FXfloat phi;
self->getAxisAngle(axis,phi);
return rb_ary_new3(2,rb_ary_new3(3,rb_float_new(axis.x),rb_float_new(axis.y),rb_float_new(axis.z)),rb_float_new(phi));
}
}
/// Set quaternion from yaw (z), pitch (y), and roll (x)
void setRollPitchYaw(FXfloat roll,FXfloat pitch,FXfloat yaw);
/// Set quaternion from axes
void setAxes(const FXVec3f& ex,const FXVec3f& ey,const FXVec3f& ez);
/// Obtain local x axis
FXVec3f getXAxis() const;
/// Obtain local y axis
FXVec3f getYAxis() const;
/// Obtain local z axis
FXVec3f getZAxis() const;
/// Exponentiate quaternion
FXQuatf exp() const;
/// Take logarithm of quaternion
FXQuatf log() const;
/// Invert quaternion
FXQuatf invert() const;
/// Invert unit quaternion
FXQuatf unitinvert() const;
/// Conjugate quaternion
FXQuatf conj() const;
/// Construct quaternion from arc a->b on unit sphere
FXQuatf& arc(const FXVec3f& a,const FXVec3f& b);
/// Spherical lerp
FXQuatf& lerp(const FXQuatf& u,const FXQuatf& v,FXfloat f);
%extend {
/// Obtain yaw, pitch, and roll from quaternion
VALUE getRollPitchYaw() const {
FXfloat roll,pitch,yaw;
self->getRollPitchYaw(roll,pitch,yaw);
return rb_ary_new3(3,rb_float_new(roll),rb_float_new(pitch),rb_float_new(yaw));
}
/// Get quaternion axes
VALUE getAxes() const {
FXVec3f ex,ey,ez;
self->getAxes(ex,ey,ez);
return rb_ary_new3(3,Qnil,Qnil,Qnil); // FIXME
}
/// Multiply quaternions
FXQuatf operator*(const FXQuatf& other) const { return (*self)*other; }
// Rotation of a vector by a quaternion
FXVec3f operator*(const FXVec3f& vec) const { return (*self)*vec; }
}
};
|