-- GENERATED by C->Haskell Compiler, version 0.16.3 Crystal Seed, 24 Jan 2009 (Haskell) -- Edit the ORIGNAL .chs file instead! {-# LINE 1 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-}{-# LANGUAGE ForeignFunctionInterface #-} {-# LANGUAGE TypeSynonymInstances #-} -- This source file is part of HGamer3D -- (A project to enable 3D game development in Haskell) -- For the latest info, see http://www.althainz.de/HGamer3D.html -- -- (c) 2011, 2012 Peter Althainz -- -- Licensed under the Apache License, Version 2.0 (the "License"); -- you may not use this file except in compliance with the License. -- You may obtain a copy of the License at -- -- http://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. -- -- ClassSceneNode.chs -- module HGamer3D.Bindings.Ogre.ClassSceneNode where import C2HS import Foreign import Foreign.Ptr import Foreign.C import Monad (liftM, liftM2) import HGamer3D.Data.HG3DClass import HGamer3D.Data.Vector import HGamer3D.Data.Colour import HGamer3D.Data.Angle import HGamer3D.Bindings.Ogre.Utils {-# LINE 42 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} import HGamer3D.Bindings.Ogre.ClassPtr {-# LINE 43 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} import HGamer3D.Bindings.Ogre.StructHG3DClass {-# LINE 44 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} import HGamer3D.Bindings.Ogre.StructVec3 {-# LINE 45 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} import HGamer3D.Bindings.Ogre.StructQuaternion {-# LINE 46 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | delete :: HG3DClass -- ^ classpointer - pointer of Class instance which is going to be deleted. -> IO () -- ^ delete a1 = withHG3DClass a1 $ \a1' -> delete'_ a1' >>= \res -> return () {-# LINE 51 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Adds an instance of a scene object to this node. Scene objects can include EntityCameraLightMovableObject attachObject :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> HG3DClass -- ^ obj -> IO () -- ^ attachObject a1 a2 = withHG3DClass a1 $ \a1' -> withHG3DClass a2 $ \a2' -> attachObject'_ a1' a2' >>= \res -> return () {-# LINE 56 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Reports the number of objects attached to this node. numAttachedObjects :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Int) -- ^ numAttachedObjects a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> numAttachedObjects'_ a1' a2' >>= \res -> peekIntConv a2'>>= \a2'' -> return (a2'') {-# LINE 61 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Retrieves a pointer to an attached object. Retrieves by index, see alternate version to retrieve by name. The index of an object may change as other objects are added / removed. getAttachedObject :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Int -- ^ index -> IO (HG3DClass) -- ^ getAttachedObject a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromIntegral a2} in alloca $ \a3' -> getAttachedObject'_ a1' a2' a3' >>= \res -> peek a3'>>= \a3'' -> return (a3'') {-# LINE 67 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Retrieves a pointer to an attached object. Retrieves by object name, see alternate version to retrieve by index. getAttachedObject2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO (HG3DClass) -- ^ getAttachedObject2 a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> alloca $ \a3' -> getAttachedObject2'_ a1' a2' a3' >>= \res -> peek a3'>>= \a3'' -> return (a3'') {-# LINE 73 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Detaches the indexed object from this scene node. Detaches by index, see the alternate version to detach by name. Object indexes may change as other objects are added / removed. detachObject :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Int -- ^ index -> IO (HG3DClass) -- ^ detachObject a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromIntegral a2} in alloca $ \a3' -> detachObject'_ a1' a2' a3' >>= \res -> peek a3'>>= \a3'' -> return (a3'') {-# LINE 79 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Detaches an object by pointer. detachObject2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> HG3DClass -- ^ obj -> IO () -- ^ detachObject2 a1 a2 = withHG3DClass a1 $ \a1' -> withHG3DClass a2 $ \a2' -> detachObject2'_ a1' a2' >>= \res -> return () {-# LINE 84 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Detaches the named object from this node and returns a pointer to it. detachObject3 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO (HG3DClass) -- ^ detachObject3 a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> alloca $ \a3' -> detachObject3'_ a1' a2' a3' >>= \res -> peek a3'>>= \a3'' -> return (a3'') {-# LINE 90 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Detaches all objects attached to this node. detachAllObjects :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ detachAllObjects a1 = withHG3DClass a1 $ \a1' -> detachAllObjects'_ a1' >>= \res -> return () {-# LINE 94 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Determines whether this node is in the scene graph, i.e. whether it's ultimate ancestor is the root scene node. isInSceneGraph :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ isInSceneGraph a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> isInSceneGraph'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 99 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Gets the creator of this scene node. This method returns the SceneManager getCreator :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (HG3DClass) -- ^ getCreator a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getCreator'_ a1' a2' >>= \res -> peek a2'>>= \a2'' -> return (a2'') {-# LINE 104 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | This method removes and destroys the named child and all of its children. Unlike removeChild, which removes a single named child from this node but does not destroy it, this method destroys the child and all of it's children. Use this if you wish to recursively destroy a node as well as detaching it from it's parent. Note that any objects attached to the nodes will be detached but will not themselves be destroyed. removeAndDestroyChild :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> IO () -- ^ removeAndDestroyChild a1 a2 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> removeAndDestroyChild'_ a1' a2' >>= \res -> return () {-# LINE 109 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | This method removes and destroys the child and all of its children. Unlike removeChild, which removes a single named child from this node but does not destroy it, this method destroys the child and all of it's children. Use this if you wish to recursively destroy a node as well as detaching it from it's parent. Note that any objects attached to the nodes will be detached but will not themselves be destroyed. removeAndDestroyChild2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Int -- ^ index -> IO () -- ^ removeAndDestroyChild2 a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromIntegral a2} in removeAndDestroyChild2'_ a1' a2' >>= \res -> return () {-# LINE 114 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Removes and destroys all children of this node. Use this to destroy all child nodes of this node and remove them from the scene graph. Note that all objects attached to this node will be detached but will not be destroyed. removeAndDestroyAllChildren :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO () -- ^ removeAndDestroyAllChildren a1 = withHG3DClass a1 $ \a1' -> removeAndDestroyAllChildren'_ a1' >>= \res -> return () {-# LINE 118 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Allows the showing of the node's bounding box. Use this to show or hide the bounding box of the node. showBoundingBox :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ bShow -> IO () -- ^ showBoundingBox a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in showBoundingBox'_ a1' a2' >>= \res -> return () {-# LINE 123 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Allows the overriding of the node's bounding box over the SceneManagerUse this to override the bounding box setting of the node. hideBoundingBox :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ bHide -> IO () -- ^ hideBoundingBox a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in hideBoundingBox'_ a1' a2' >>= \res -> return () {-# LINE 128 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | This allows scene managers to determine if the node's bounding box should be added to the rendering queue. Scene Managers that implement their own _findVisibleObjects will have to check this flag and then use _addBoundingBoxToQueue to add the bounding box wireframe. getShowBoundingBox :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Bool) -- ^ getShowBoundingBox a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getShowBoundingBox'_ a1' a2' >>= \res -> peekBoolUtil a2'>>= \a2'' -> return (a2'') {-# LINE 133 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Creates an unnamed new SceneNode createChildSceneNode :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Vec3 -- ^ translate - Initial translation offset of child relative to parent -> Quaternion -- ^ rotate - Initial rotation relative to parent -> IO (HG3DClass) -- ^ createChildSceneNode a1 a2 a3 = withHG3DClass a1 $ \a1' -> withVec3 a2 $ \a2' -> withQuaternion a3 $ \a3' -> alloca $ \a4' -> createChildSceneNode'_ a1' a2' a3' a4' >>= \res -> peek a4'>>= \a4'' -> return (a4'') {-# LINE 140 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Creates a new named SceneNodeThis creates a child node with a given name, which allows you to look the node up from the parent which holds this collection of nodes. createChildSceneNode2 :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> String -- ^ name -> Vec3 -- ^ translate - Initial translation offset of child relative to parent -> Quaternion -- ^ rotate - Initial rotation relative to parent -> IO (HG3DClass) -- ^ createChildSceneNode2 a1 a2 a3 a4 = withHG3DClass a1 $ \a1' -> withCString a2 $ \a2' -> withVec3 a3 $ \a3' -> withQuaternion a4 $ \a4' -> alloca $ \a5' -> createChildSceneNode2'_ a1' a2' a3' a4' a5' >>= \res -> peek a5'>>= \a5'' -> return (a5'') {-# LINE 148 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Tells the node whether to yaw around it's own local Y axis or a fixed axis of choice. This method allows you to change the yaw behaviour of the node - by default, it yaws around it's own local Y axis when told to yaw with TS_LOCAL, this makes it yaw around a fixed axis. You only really need this when you're using auto tracking (see setAutoTracking, because when you're manually rotating a node you can specify the TransformSpace in which you wish to work anyway. setFixedYawAxis :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ useFixed - If true, the axis passed in the second parameter will always be the yaw axis no matter what the node orientation. If false, the node returns to it's default behaviour. -> Vec3 -- ^ fixedAxis - The axis to use if the first parameter is true. -> IO () -- ^ setFixedYawAxis a1 a2 a3 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in withVec3 a3 $ \a3' -> setFixedYawAxis'_ a1' a2' a3' >>= \res -> return () {-# LINE 154 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Enables / disables automatic tracking of another SceneNodeIf you enable auto-tracking, this SceneNodeSceneNodeSceneNodeSceneNode setAutoTracking :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ enabled - If true, tracking will be enabled and the next parameter cannot be null. If false tracking will be disabled and the current orientation will be maintained. -> HG3DClass -- ^ target - Pointer to the SceneNode to track. Make sure you don't delete this SceneNode before turning off tracking (e.g. SceneManager::clearScene will delete it so be careful of this). Can be null if and only if the enabled param is false. -> Vec3 -- ^ localDirectionVector - The local vector considered to be the usual 'direction' of the node; normally the local -Z but can be another direction. -> Vec3 -- ^ offset - If supplied, this is the target point in local space of the target node instead of the origin of the target node. Good for fine tuning the look at point. -> IO () -- ^ setAutoTracking a1 a2 a3 a4 a5 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in withHG3DClass a3 $ \a3' -> withVec3 a4 $ \a4' -> withVec3 a5 $ \a5' -> setAutoTracking'_ a1' a2' a3' a4' a5' >>= \res -> return () {-# LINE 162 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Get the auto tracking target for this node, if any. getAutoTrackTarget :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (HG3DClass) -- ^ getAutoTrackTarget a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getAutoTrackTarget'_ a1' a2' >>= \res -> peek a2'>>= \a2'' -> return (a2'') {-# LINE 167 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Get the auto tracking offset for this node, if the node is auto tracking. getAutoTrackOffset :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Vec3) -- ^ getAutoTrackOffset a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getAutoTrackOffset'_ a1' a2' >>= \res -> peekVec3 a2'>>= \a2'' -> return (a2'') {-# LINE 172 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Get the auto tracking local direction for this node, if it is auto tracking. getAutoTrackLocalDirection :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (Vec3) -- ^ getAutoTrackLocalDirection a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getAutoTrackLocalDirection'_ a1' a2' >>= \res -> peekVec3 a2'>>= \a2'' -> return (a2'') {-# LINE 177 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Gets the parent of this SceneNode getParentSceneNode :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> IO (HG3DClass) -- ^ getParentSceneNode a1 = withHG3DClass a1 $ \a1' -> alloca $ \a2' -> getParentSceneNode'_ a1' a2' >>= \res -> peek a2'>>= \a2'' -> return (a2'') {-# LINE 182 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Makes all objects attached to this node become visible / invisible. This is a shortcut to calling setVisible() setVisible :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ visible - Whether the objects are to be made visible or invisible -> Bool -- ^ cascade - If true, this setting cascades into child nodes too. -> IO () -- ^ setVisible a1 a2 a3 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in let {a3' = fromBool a3} in setVisible'_ a1' a2' a3' >>= \res -> return () {-# LINE 188 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Inverts the visibility of all objects attached to this node. This is a shortcut to calling setVisible(!isVisible()) on the objects attached to this node, and optionally to all objects attached to child nodes. flipVisibility :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ cascade - If true, this setting cascades into child nodes too. -> IO () -- ^ flipVisibility a1 a2 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in flipVisibility'_ a1' a2' >>= \res -> return () {-# LINE 193 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} -- | Tells all objects attached to this node whether to display their debug information or not. This is a shortcut to calling setDebugDisplayEnabled() setDebugDisplayEnabled :: HG3DClass -- ^ classpointer - pointer of Class instance from which this methods is called. -> Bool -- ^ enabled - Whether the objects are to display debug info or not -> Bool -- ^ cascade - If true, this setting cascades into child nodes too. -> IO () -- ^ setDebugDisplayEnabled a1 a2 a3 = withHG3DClass a1 $ \a1' -> let {a2' = fromBool a2} in let {a3' = fromBool a3} in setDebugDisplayEnabled'_ a1' a2' a3' >>= \res -> return () {-# LINE 199 ".\\HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs" #-} foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_destruct" delete'_ :: ((HG3DClassPtr) -> (IO ())) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_attachObject" attachObject'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_numAttachedObjects" numAttachedObjects'_ :: ((HG3DClassPtr) -> ((Ptr CUShort) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getAttachedObject" getAttachedObject'_ :: ((HG3DClassPtr) -> (CUShort -> ((HG3DClassPtr) -> (IO ())))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getAttachedObject2" getAttachedObject2'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ())))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_detachObject" detachObject'_ :: ((HG3DClassPtr) -> (CUShort -> ((HG3DClassPtr) -> (IO ())))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_detachObject2" detachObject2'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_detachObject3" detachObject3'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((HG3DClassPtr) -> (IO ())))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_detachAllObjects" detachAllObjects'_ :: ((HG3DClassPtr) -> (IO ())) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_isInSceneGraph" isInSceneGraph'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getCreator" getCreator'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_removeAndDestroyChild" removeAndDestroyChild'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_removeAndDestroyChild2" removeAndDestroyChild2'_ :: ((HG3DClassPtr) -> (CUShort -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_removeAndDestroyAllChildren" removeAndDestroyAllChildren'_ :: ((HG3DClassPtr) -> (IO ())) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_showBoundingBox" showBoundingBox'_ :: ((HG3DClassPtr) -> (CInt -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_hideBoundingBox" hideBoundingBox'_ :: ((HG3DClassPtr) -> (CInt -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getShowBoundingBox" getShowBoundingBox'_ :: ((HG3DClassPtr) -> ((Ptr CInt) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_createChildSceneNode" createChildSceneNode'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> ((QuaternionPtr) -> ((HG3DClassPtr) -> (IO ()))))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_createChildSceneNode2" createChildSceneNode2'_ :: ((HG3DClassPtr) -> ((Ptr CChar) -> ((Vec3Ptr) -> ((QuaternionPtr) -> ((HG3DClassPtr) -> (IO ())))))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_setFixedYawAxis" setFixedYawAxis'_ :: ((HG3DClassPtr) -> (CInt -> ((Vec3Ptr) -> (IO ())))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_setAutoTracking" setAutoTracking'_ :: ((HG3DClassPtr) -> (CInt -> ((HG3DClassPtr) -> ((Vec3Ptr) -> ((Vec3Ptr) -> (IO ())))))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getAutoTrackTarget" getAutoTrackTarget'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getAutoTrackOffset" getAutoTrackOffset'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getAutoTrackLocalDirection" getAutoTrackLocalDirection'_ :: ((HG3DClassPtr) -> ((Vec3Ptr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_getParentSceneNode" getParentSceneNode'_ :: ((HG3DClassPtr) -> ((HG3DClassPtr) -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_setVisible" setVisible'_ :: ((HG3DClassPtr) -> (CInt -> (CInt -> (IO ())))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_flipVisibility" flipVisibility'_ :: ((HG3DClassPtr) -> (CInt -> (IO ()))) foreign import ccall safe "HGamer3D\\Bindings\\Ogre\\ClassSceneNode.chs.h ogre_sn_setDebugDisplayEnabled" setDebugDisplayEnabled'_ :: ((HG3DClassPtr) -> (CInt -> (CInt -> (IO ()))))