// 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
//
// Copyright 2011 Dr. 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.
//
// ClassLight.h
//
//
//
//
// File for type, method, enum or function stubs
// in: "..\OgreSDK_vc10_v1-7-4\include\OGRE\OgreLight.h"
//
// each stub combines the following files:
// a C++ implementation file, transforming cpp calls into C-functions
// a C-header file, making this C-functions available for the C2HS parser
// a chs file, give instructions to the C2HS parser.
//
//
#include "wchar.h"
#include "ClassPtr.h"
#include "Utils.h"
#include "TypeVector3.h"
#include "EnumLightTypes.h"
#include "TypeColourValue.h"
#include "TypeRadian.h"
#include "TypeVector4.h"
// original function: void _calcTempSquareDist(const Vector3& worldPos);
void cL__calcTempSquareDist_c(struct hg3dclass_struct *classptr_c, struct vector3_struct * worldPos_c);
// original function: void setType(LightTypes type);
void cL_setType_c(struct hg3dclass_struct *classptr_c, enum EnumLightTypes type_c);
// original function: LightTypes getType();
void cL_getType_c(struct hg3dclass_struct *classptr_c, enum EnumLightTypes * result_c);
// original function: void setDiffuseColour(Real red, Real green, Real blue);
void cL_setDiffuseColour_c(struct hg3dclass_struct *classptr_c, float red_c, float green_c, float blue_c);
// original function: void setDiffuseColour(const ColourValue& colour);
void cL_setDiffuseColour2_c(struct hg3dclass_struct *classptr_c, struct colourvalue_struct * colour_c);
// original function: const ColourValue& getDiffuseColour();
void cL_getDiffuseColour_c(struct hg3dclass_struct *classptr_c, struct colourvalue_struct * result_c);
// original function: void setSpecularColour(Real red, Real green, Real blue);
void cL_setSpecularColour_c(struct hg3dclass_struct *classptr_c, float red_c, float green_c, float blue_c);
// original function: void setSpecularColour(const ColourValue& colour);
void cL_setSpecularColour2_c(struct hg3dclass_struct *classptr_c, struct colourvalue_struct * colour_c);
// original function: const ColourValue& getSpecularColour();
void cL_getSpecularColour_c(struct hg3dclass_struct *classptr_c, struct colourvalue_struct * result_c);
// original function: void setAttenuation(Real range, Real constant, Real linear, Real quadratic);
void cL_setAttenuation_c(struct hg3dclass_struct *classptr_c, float range_c, float constant_c, float linear_c, float quadratic_c);
// original function: Real getAttenuationRange();
void cL_getAttenuationRange_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: Real getAttenuationConstant();
void cL_getAttenuationConstant_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: Real getAttenuationLinear();
void cL_getAttenuationLinear_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: Real getAttenuationQuadric();
void cL_getAttenuationQuadric_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: void setPosition(Real x, Real y, Real z);
void cL_setPosition_c(struct hg3dclass_struct *classptr_c, float x_c, float y_c, float z_c);
// original function: void setPosition(const Vector3& vec);
void cL_setPosition2_c(struct hg3dclass_struct *classptr_c, struct vector3_struct * vec_c);
// original function: const Vector3& getPosition();
void cL_getPosition_c(struct hg3dclass_struct *classptr_c, struct vector3_struct * result_c);
// original function: void setDirection(Real x, Real y, Real z);
void cL_setDirection_c(struct hg3dclass_struct *classptr_c, float x_c, float y_c, float z_c);
// original function: void setDirection(const Vector3& vec);
void cL_setDirection2_c(struct hg3dclass_struct *classptr_c, struct vector3_struct * vec_c);
// original function: const Vector3& getDirection();
void cL_getDirection_c(struct hg3dclass_struct *classptr_c, struct vector3_struct * result_c);
// original function: void setSpotlightRange(const Radian& innerAngle, const Radian& outerAngle, Real falloff);
void cL_setSpotlightRange_c(struct hg3dclass_struct *classptr_c, struct radian_struct * innerAngle_c, struct radian_struct * outerAngle_c, float falloff_c);
// original function: const Radian& getSpotlightInnerAngle();
void cL_getSpotlightInnerAngle_c(struct hg3dclass_struct *classptr_c, struct radian_struct * result_c);
// original function: const Radian& getSpotlightOuterAngle();
void cL_getSpotlightOuterAngle_c(struct hg3dclass_struct *classptr_c, struct radian_struct * result_c);
// original function: Real getSpotlightFalloff();
void cL_getSpotlightFalloff_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: void setSpotlightInnerAngle(const Radian& val);
void cL_setSpotlightInnerAngle_c(struct hg3dclass_struct *classptr_c, struct radian_struct * val_c);
// original function: void setSpotlightOuterAngle(const Radian& val);
void cL_setSpotlightOuterAngle_c(struct hg3dclass_struct *classptr_c, struct radian_struct * val_c);
// original function: void setSpotlightFalloff(Real val);
void cL_setSpotlightFalloff_c(struct hg3dclass_struct *classptr_c, float val_c);
// original function: void setPowerScale(Real power);
void cL_setPowerScale_c(struct hg3dclass_struct *classptr_c, float power_c);
// original function: Real getPowerScale();
void cL_getPowerScale_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: void _notifyAttached(Node* parent, bool isTagPoint);
void cL__notifyAttached_c(struct hg3dclass_struct *classptr_c, struct hg3dclass_struct * parent_c, int isTagPoint_c);
// original function: void _notifyMoved();
void cL__notifyMoved_c(struct hg3dclass_struct *classptr_c);
// original function: const String& getMovableType();
void cL_getMovableType_c(struct hg3dclass_struct *classptr_c, char * result_c);
// original function: const Vector3& getDerivedPosition(bool cameraRelativeIfSet);
void cL_getDerivedPosition_c(struct hg3dclass_struct *classptr_c, int cameraRelativeIfSet_c, struct vector3_struct * result_c);
// original function: const Vector3& getDerivedDirection();
void cL_getDerivedDirection_c(struct hg3dclass_struct *classptr_c, struct vector3_struct * result_c);
// original function: void setVisible(bool visible);
void cL_setVisible_c(struct hg3dclass_struct *classptr_c, int visible_c);
// original function: Real getBoundingRadius();
void cL_getBoundingRadius_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: Vector4 getAs4DVector(bool cameraRelativeIfSet);
void cL_getAs4DVector_c(struct hg3dclass_struct *classptr_c, int cameraRelativeIfSet_c, struct vector4_struct * result_c);
// original function: uint32 getTypeFlags();
void cL_getTypeFlags_c(struct hg3dclass_struct *classptr_c, unsigned int * result_c);
// original function: void resetCustomShadowCameraSetup();
void cL_resetCustomShadowCameraSetup_c(struct hg3dclass_struct *classptr_c);
// original function: size_t _getIndexInFrame();
void cL__getIndexInFrame_c(struct hg3dclass_struct *classptr_c, int * result_c);
// original function: void setShadowFarDistance(Real distance);
void cL_setShadowFarDistance_c(struct hg3dclass_struct *classptr_c, float distance_c);
// original function: void resetShadowFarDistance();
void cL_resetShadowFarDistance_c(struct hg3dclass_struct *classptr_c);
// original function: Real getShadowFarDistance();
void cL_getShadowFarDistance_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: void setShadowNearClipDistance(Real nearClip);
void cL_setShadowNearClipDistance_c(struct hg3dclass_struct *classptr_c, float nearClip_c);
// original function: Real getShadowNearClipDistance();
void cL_getShadowNearClipDistance_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: void setShadowFarClipDistance(Real farClip);
void cL_setShadowFarClipDistance_c(struct hg3dclass_struct *classptr_c, float farClip_c);
// original function: Real getShadowFarClipDistance();
void cL_getShadowFarClipDistance_c(struct hg3dclass_struct *classptr_c, float * result_c);
// original function: void _setCameraRelative(Camera* cam);
void cL__setCameraRelative_c(struct hg3dclass_struct *classptr_c, struct hg3dclass_struct * cam_c);
// original function: void setCustomParameter(uint16 index, const Vector4& value);
void cL_setCustomParameter_c(struct hg3dclass_struct *classptr_c, unsigned short index_c, struct vector4_struct * value_c);
// original function: const Vector4& getCustomParameter(uint16 index);
void cL_getCustomParameter_c(struct hg3dclass_struct *classptr_c, unsigned short index_c, struct vector4_struct * result_c);