Last Updated 12/15/1999.
Types:
jeActor;
A jeActor is created from a jeActor_Def. Before the actor can be rendered or posed, jeActor_AttachEngine() must be called on it. There are two way to use an Actor. The first method involves controlling the Actor directly with _SetPose and and _BlendPose. The second method is to use the animation cuing API to add time based animation cues.jeActor_Def;
A jeActor_Def can either be loaded from a file or created from scratch by setting the jeBody of the jeActor_Def and adding jeMotions to it. The jeBody and jeMotions of the jeActor_Def are owned by the jeActor_Def after this and will be destroyed when the actor definition is destroyed.]Constants:
jeActor_BlendingType;
typedef enum{
JE_ACTOR_BLEND_LINEAR, // Treats the blending amount as a linear value
JE_ACTOR_BLEND_HERMITE // Applies a parametric smoothing curve to the blending amount
// so that a linear change in BlendAmount parameters will
// result in a smooth (non-linear) change in blending.
} jeActor_BlendingType;
Functions:
JETAPI jeBoolean JETCC jeActor_AddMotion(jeActor_Def *ActorDefinition, jeMotion *M, int *Index);
This function adds jeMotion M to jeActor_Def ActorDefinition and returns the newly created motion library index Index.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Adds a jeMotion to the Actor Definition's library. The ActorDefinition becomes responsible for its destruction. returns the library index to the new jeMotion.
JETAPI jeBoolean JETCC jeActor_AnimationCue(jeActor
*A, jeMotion *Motion, jeFloat TimeScaleFactor, jeFloat TimeIntoMotion,
jeFloat BlendTime, jeFloat BlendFromAmount, jeFloat BlendToAmount, const
jeXForm3d *MotionTransform);
This function cues up geMotion Motion for geActor A. The cued motion starts playing at offset TimeIntoMotion from the start of the motion and plays out at a time scale of TimeScaleFactor. The motion is blended with other active motions over BlendTime starting from BlendFromAmount and finishing with BlendToAmount. The geXForm3d MotionTransform is applied to the geMotion as a local transform and maybe NULL for no transform.Returns: JE_TRUE on success, JE_FALSE otherwise. JE_FALSE indicates incomplete initialization of the geActor.
Notes:
from ACTOR.H: Animation Cuing API: high level Actor animation: The principle is that motions can be applied to an actor and the actor will keep track of which motions are currently appropriate. Call _AnimationStep() to compute a new pose for an elapsed time interval. The new pose will take into account all motions that are 'currently' cued up to be set or blended. cue up a new motion. The motion begins at the current time. The motion can be blended in or out over time and time scaled. If the return value is JE_FALSE, the animation was not cued up (failure implies Actor is incompletely initialized).
JETAPI jeBoolean JETCC jeActor_AnimationNudge(jeActor
*A, jeXForm3d *Offset);
This function applies the jeXForm3d Offset as an offset to geActor A.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: applies an 'immediate' offset to the animated actor
JETAPI jeBoolean JETCC jeActor_AnimationRemoveLastCue(jeActor
*A);
This function removes the last applied AnimationCue from geActor A. Subsequent application removes earlier cues.Returns: JE_TRUE if a cue is removed, JE_FALSE if there are no more cues to be removed.
Notes:
from ACTOR.H: removes the last animation cue that was cued up. Can be called repeatedly to successively remove older and older cues. Returns JE_TRUE when a cue was removed, JE_FALSE if there are no cues to remove.
JETAPI jeBoolean JETCC jeActor_AnimationStep(jeActor
*A, jeFloat DeltaTime);
This function "steps" the time for jeActor A by DeltaTime and reposes the actor in response to all applicable animation cues.Returns: JE_TRUE on success, JE_FALSE if the Actor is incompletely initialized.
Notes:
from ACTOR.H: applies a time step to actor A. re-poses the actor according to all currently applicable Animation Cues. (failure implies Actor is incompletely initialized)
JETAPI jeBoolean JETCC jeActor_AnimationStepBoneOptimized(jeActor
*A, jeFloat DeltaTime, const char *BoneName);
This function steps the time for jeActor A by DeltaTime only for the bone indicated by BoneName and its parents and reposes the actor appropriately. If NULL is passed for *BoneName then only the "root" bone is affected.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: optimized version of jeActor_AnimationStep. Limits calculations to the bone named BoneName, and it's parents. BoneName will be correctly computed, but the other bones will be wrong. This is useful for moving and animating an actor that is not actually visible. Rendering and queries will be 'optimized' until the actor is given any pose or animation that doesn't go through jeActor_AnimationStepBoneOptimized() or jeActor_AnimationTestStepBoneOptimized(). BoneName can be NULL to compute only 'root' bone.
JETAPI jeBoolean JETCC jeActor_AnimationTestStep(jeActor
*A, jeFloat DeltaTime);
This function steps the time for jeActor A by DeltaTime and reposes the actor in response to all applicable animation cues; but, the time step is only temporary and future jeActor_Animation*Step* calls will not take any *Test* calls into account. This is primarily used as a means to check for collision prior to committing to the new pose.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: applies a 'temporary' time step to actor A. re-poses the actor according to all currently applicable cues. (failure implies Actor is incompletely initialized) DeltaTime is always relative to the the last AnimationStep()
JETAPI jeBoolean JETCC jeActor_AnimationTestStepBoneOptimized(jeActor
*A, jeFloat DeltaTime, const char *BoneName);
This function steps the time for jeActor A by DeltaTime only for the bone indicated by BoneName and its parents and reposes the actor appropriately. If NULL is passed for *BoneName then only the "root" bone is affected; but, the time step is only temporary and future jeActor_Animation*Step* calls will not take any *Test* calls into account. This is primarily used as a means to check for collision prior to committing to the new pose.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: optimized version of jeActor_AnimationTestStep. Limits calculations to the bone named BoneName, and it's/ parents. BoneName will be correctly computed, but the other bones will be wrong. This is useful for moving and animating an actor that is not actually visible. Rendering and queries will be 'optimized' until the actor is given any pose or animation that doesn't go through geActor_AnimationStepBoneOptimized() or geActor_AnimationTestStepBoneOptimized(). BoneName can be NULL to compute only 'root' bone.
JETAPI jeBoolean JETCC jeActor_Attach(jeActor
*Slave, const char *SlaveBoneName, const jeActor *Master, const char
*MasterBoneName, const jeXForm3d *Attachment);
This function attaches jeActor Slave to jeActor Master from bone SlaveBoneName on Slave to bone MasterBoneName on Master and orients Slave by transform Attachment relative to master (I think...).Returns: JE_TRUE on success, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_AttachEngine(jeActor
*A, jeEngine *pEngine);
This function sets up the jeActor A for use with jeEngine pEngine and must be called before and rendering or posing of the jeActor can occur.JETAPI void JETCC jeActor_BlendPose(jeActor *A, const jeMotion *Motion, jeFloat Time, const jeXForm3d *Transform, jeFloat BlendAmount);Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Prepares the jeActor for rendering and posing. Call Once once the actor is fully created. Must be called prior to render/pose/setworldtransform.
This function combines the jeMotion Motion with the current pose for jeActor A in the amount specified by BlendAmount at a time offset of Time. Transform is used to position the root of A; if it is null then the current position is used.Returns: nothing.
Notes:
from ACTOR.H: Blends the current pose of the jeActor with a new pose using motion M at a time offset of Time. A BlendAmount of 0 will result in the existing pose, A BlendAmount of 1 will result in the new pose from M. The BlendingType set by _SetBlendingType() determines the blending function between 0 and 1. Transform is where to position the root for this pose. if Transform is NULL, the root for the pose is assumed to be the root of the actor.
JETAPI void JETCC jeActor_ClearPose(jeActor
*A, const jeXForm3d *Transform);
This function sets the pose for jeActor A back to its default pose and positions the actor at Transform. If Transform is null then the actor is not moved.Returns: nothing.
Notes:
from ACTOR.H: Poses the actor in its default pose. Transform is where to position the root for this pose. if Transform is NULL, the root for the pose is assumed to be the root of the actor.
JETAPI jeActor *JETCC jeActor_Create(jeActor_Def
*ActorDefinition);
This function creates a new jeActor object from jeActor_Def ActorDefinition and returns it.Returns: the newly created jeActor.
Notes:
from ACTOR.H: Create an Actor instance associated with the given Actor Definition
JETAPI void JETCC jeActor_CreateRef(jeActor
*Actor);
This function increments the reference count for jeActor Actor by one.Returns: nothing.
Notes:
from ACTOR.H: Create an additional reference (owner) for the Actor
JETAPI jeActor_Def *JETCC jeActor_DefCreate(void);
This function creates a new empty jeActor_Def and returns it.Returns: the newly created jeActor_Def.
Notes:
from ACTOR.H: Create an 'empty' Actor Definition.
JETAPI jeActor_Def *JETCC jeActor_DefCreateFromFile(jeVFile
*pFile);
This function creates a new jeActor_Def objects from the specified jeVFile pFile.Returns: the newly created jeActor_Def.
Notes:
from ACTOR.H: Create an Actor Definition from a file image.
JETAPI void JETCC jeActor_DefCreateRef(jeActor_Def
*pActorDefinition);
This function increases the reference count for jeActor_Def pActorDefinition by one.Returns: nothing.
Notes:
from ACTOR.H: Create an additional reference (owner) for the Actor Definition
JETAPI void JETCC jeActor_Destroy(jeActor
**pA);
This function decreases the reference count for jeActor pA by one. If the reference count goes to 0 then all resources for pA are freed.Returns: nothing.
Notes:
from ACTOR.H: Destroy an Actor.
JETAPI geBoolean JETCC jeActor_DefDestroy(jeActor_Def
**pActorDefinition);
This function decreases the reference count for jeActorDef pActorDefinition by one. If the reference count goes to 0 then all resources for pActorDefinition are freed.Returns: JE_TRUE if the reference count dropped to 0, JE_FALSE if the reference count, after being reduced by 1, is still greater than 0.
Notes:
from ACTOR.H: Destroy a jeActor_Def (its jeBody and its jeMotions) Actors that rely on this definition become invalid. Can fail if there are actors still referencing this definition.
JETAPI geBoolean JETCC jeActor_DefHasBoneNamed(const
jeActor_Def *Ad, const char *Name);
This function checks to see if jeActor_Def Ad contains a bone with the name Name.Returns: JE_TRUE if the named bone exists, JE_FALSE otherwise.
Notes:
from ACTOR.H: Returns JE_TRUE if the actor definition has a bone named 'Name'
JETAPI jeBoolean JETCC jeActor_DefIsValid(const
jeActor_Def *A);
This function checks that jeActor_Def A is a valid, non-NULL object.Returns: JE_TRUE if A is valid, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_DefWriteToFile(const
jeActor_Def *A, jeVFile *pFile);
This function outputs the jeActor_Def A to the jeVfile pFile.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Writes an existing jeActor to a file image. Returns JE_TRUE on success, JE_FALSE on failure.
JETAPI void JETCC jeActor_Detach(jeActor
*Slave);
This function removes the specified jeActor Slave from the attachment specified by an earlier call to jeActor_Attach.Returns: nothing.
JETAPI jeBoolean JETCC jeActor_DetachEngine(jeActor
*A, jeEngine *pEngine);
This function should be called before deleting the jeEngine *pEngine for each jeActor previously attached the the jeEngine.JETAPI void jeActor_ForceStaticRelighting(jeActor* pActor);Returns: JE_TRUE on success, JE_FALSE otherwise.
This function forces the charactor to be relit with static lighting. What is the utility of this?JETAPI jeActor_Def *JETCC jeActor_GetActorDef(const jeActor *A);Return: nothing
Notes:
from ACTOR.H: force the actor to be re-lit with static lighting
This function returns the jeActor_Def object associated with geActor A.Returns: the jeActor_Def object.
Notes:
from ACTOR.H: Returns the Actor Definition associated with Actor A
JETAPI jeBoolean JETCC jeActor_GetAnimationEvent(jeActor
*A, const char **ppEventString);
This function returns the current animation event string for jeActor A in ppEventString.Returns: JE_TRUE if an event string is returned, JE_FALSE otherwise.
Notes:
from ACTOR.H: Return data, if return value is JE_TRUE
JETAPI jeBody *JETCC jeActor_GetBody(const
jeActor_Def *ActorDefinition);
This function returns the jeBody associated with jeActor_Def ActorDefinition.Returns: the jeBody.
Notes:
from ACTOR.H: Returns a jeBody pointer from the jeActor
JETAPI jeBoolean JETCC jeActor_GetBoneAttachment(const
jeActor *A, const char *BoneName, jeXForm3d *Transform);
This function returns the position and orientation of attachment for the bone indicated by BoneName of jeActor A in jeXForm3d Transform.Returns: JE_TRUE on success, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_GetBoneBoundingBox(const
jeActor *A, const char *BoneName, jeVec3d *Corner, jeVec3d *DX, jeVec3d
*DY, jeVec3d *DZ);
This function returns the current non-axial-aligned bounding box for the bone indicated by BoneName of jeActor A. The bounding box is returned as a corner (Corner) and an orientation transform (DX, DY, DZ).Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Gets the non-axial-aligned bounding box for a given bone (for the current pose). The box is specified by a corner, and a non-normalized orientation transform. Add DX,DY,DZ components of the orientation to get other corners of the box. If BoneName is NULL, gets the a general bounding box from the body of the actor if it has been set.
JETAPI jeBoolean JETCC jeActor_GetBoneExtBox(const
jeActor *A, const char *BoneName, jeExtBox *ExtBox);
This function returns the current axial-aligned bounding box for the bone indicated by BoneName of jeActor A in ExtBox. If *BoneName is NULL, the bounding box for the entire actor is returned, if set.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Gets the extent box (axial-aligned bounding box) for a given bone (for the current pose) if BoneName is NULL, gets the general bounding box from the body of the actor if it has been set.
JETAPI jeBoolean JETCC jeActor_GetBoneTransform(const
jeActor *A, const char *BoneName, jeXForm3d *Transform);
This function returns the current actor-space to world-space transform for the bone indicated by BoneName of geActor A in Transform. If *BoneName is NULL, then it returns the actor's current root transform.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Gets the current transform for a single bone in A. (actor space->world space transform). With a NULL BoneName, this returns the current 'root' transform.
JETAPI int JETCC jeActor_GetCount(void);
This function returns the number of jeActor objects currently existing.Returns: the result.
Notes:
from ACTOR.H: returns number of actors that are currently created.
JETAPI jeBoolean JETCC jeActor_GetDynamicExtBox(const
jeActor *A, jeExtBox *ExtBox);
This function returns the current axial-aligned bounding box for jeActor A taking all bones into account and returning the result in ExtBox.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Gets the current axial-aligned bounding box for an actor's bone configuration takes all bones into account
JETAPI jeBoolean JETCC jeActor_GetExtBox(const
jeActor *A, jeExtBox *ExtBox);
This function returns the originally assigned axial-aligned non-changing bounding box for jeActor A in ExtBox.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Gets an assigned general non changing bounding box from the actor
JETAPI jeBoolean JETCC jeActor_GetIndexedBoneWorldSpaceVertexLocations(const
jeActor* pActor, int boneIndex, int aSize, jeVec3d* pVerts);
This function returns all the vertices of the bone of jeActor pActor at index boneIndex in worldspace coordinates in pVerts. aSize is the maximum number of jeVec3ds to store in pVerts.JETAPI jeBoolean JETCC jeActor_GetLightingOptions(const jeActor *A, jeBoolean *UseFillLight, jeVec3d *FillLightNormal, jeFloat *FillLightRed, jeFloat *FillLightGreen, jeFloat *FillLightBlue, jeFloat *AmbientLightRed, jeFloat *AmbientLightGreen, jeFloat *AmbientLightBlue, jeBoolean *UseAmbientLightFromFloor, int *MaximumDynamicLightsToUse, int *MaximumStaticLightsToUse, const char **LightReferenceBoneName, jeBoolean *PerBoneLighting);Returns: JE_TRUE on success, JE_FALSE otherwise.
This function returns the current lighting options for jeActor A. The rest of the arguments represent the return values. See jeActor_SetLightingOptions for further explanation.Returns: JE_TRUE on success, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_GetMaterial(const
jeActor *Actor, int MaterialIndex, jeBitmap **Bitmap, jeFloat *Red, jeFloat
*Green, jeFloat *Blue, jeUVMapper* Mapper);
This function returns the current jeBitmap, color settings, and UV mapping for jeActor Actor at index MaterialIndex.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Returns the current material for an instance of an actor
JETAPI int JETCC jeActor_GetMaterialCount(const
jeActor *A);
This function returns the number of material for jeActor A.Returns: the result.
Notes:
from ACTOR.H: Returns the number of materials for an instance of an actor.
JETAPI jeMotion *JETCC jeActor_GetMotionByIndex(const
jeActor_Def *ActorDefinition, int Index);
This function returns a pointer to the jeMotion of jeActor_Def ActorDefinition indicated by index Index.Returns: the jeMotion *.
Notes:
from ACTOR.H: Returns a jeMotion pointer from the jeActor's jeMotion library. This is an aliased pointer - Not a copy. Changes to this motion will be reflected in the actor. Destroying this return motion will confuse the actor. Index must be in range [0 ... jeActor_GetMotionCount() - 1]
JETAPI geMotion *JETCC jeActor_GetMotionByName(const
jeActor_Def *ActorDefinition, const char *Name);
This function returns a pointer to the jeMotion of geActor_Def ActorDefinition named Name.Returns: the jeMotion* on success, NULL otherwise.
Notes:
from ACTOR.H: Returns a jeMotion pointer from the jeActor's jeMotion library. This is an aliased pointer - Not a copy. Changes to this motion will be reflected in the actor. Destroying this return motion will confuse the actor. If there is no motion that matches the given name, the return value will be NULL
JETAPI int JETCC jeActor_GetMotionCount(const
jeActor_Def *ActorDefinition);
This function returns the number of jeMotion objects in the jeActor_Def ActorDefinition's jeMotion library.Returns: the result.
Notes:
from ACTOR.H: Returns the number of jeMotions in the jeActor's jeMotion library.
JETAPI const char *JETCC jeActor_GetMotionName(const
jeActor_Def *ActorDefinition, int Index);
This function returns the name of the jeMotion object at index Index of jeActor_Def ActorDefinition.Returns: the result.
Notes:
from ACTOR.H: Returns a motion name given an ActorDef and a motion index.
JETAPI jeBoolean JETCC jeActor_GetNameBoneWorldSpaceVertexLocations(const
jeActor* pActor, const char* pBoneName, int aSize, jeVec3d* pVerts);
This function returns all the vertices of the bone of jeActor pActor named pBoneName in worldspace coordinates in pVerts. aSize is the maximum number of jeVec3ds to store in pVerts.JETAPI jeBoolean JETCC jeActor_GetRenderHintExtBox(const jeActor *A, jeExtBox *Box, jeBoolean *Enabled);Returns: JE_TRUE on success, JE_FALSE otherwise.
This function returns axial-aligned rendering hint bound box for jeActor A. If the RenderHintExtBox option is enabled then Enabled is JE_TRUE, otherwise Enabled is JE_FALSE and the jeExtBox returned is centered at the actor's root and has 0 dimensions. See _SetRenderHintExtBox for more information.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Gets the rendering hint bounding box from the actor. If the RenderHintExtBox is disabled, Enabled is JE_FALSE, and the box returned has zero dimensions, centered at the root position of the actor. If the RenderHintExtBox is enabled, Enabled is JE_TRUE, and the box returned is the one set with _SetRenderHintExtBox, offset by the bone position of the bone named in _SetRenderHintExtBox().
JETAPI void *JETCC jeActor_GetUserData(const
jeActor *A);
This function returns the pointer previously set with jeActor_SetUserData for jeActor A.Returns: the pointer or NULL if no pointer set.
Notes:
from ACTOR.H: Returns the pointer which was set with jeActor_SetUserData. NULL if not set.
JETAPI jeBoolean JETCC jeActor_IsValid(const
jeActor *A);
This function checks that jeActor A is a valid jeActor object.Returns: JE_TRUE if valid, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_Render(const
jeActor *A, jeEngine *Engine, juWorld *World, const jeCamera *Camera);
This function renders the jeActor A using jeEngine Engine, juWorld World, and jeCamera Camera. This function is only available if WORLD.H is included. jeActor_AttachEngine() must have been called on A previous to any call to _Render.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Draws the jeActor. ( jeActor_AttachEngine() must be called first)
JETAPI jeBoolean JETCC jeActor_RenderThroughFrustum(const
jeActor *A, jeEngine *Engine, juWorld *World, jeCamera *Camera, cont jeFrustum
*Frustum);
This function renders the jeActor A using jeEngine Engine, juWorld World, and jeCamera Camera if it intersects the jeFrustum Frustum. jeActor_AttachEngine() must have been called on A previous to any calls to _RenderThroughFrustrum.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Draws the jeActor. (jeActor_AttachEngine() must be called first)
JETAPI void JETCC jeActor_SetBlendingType(jeActor
*A, jeActor_BlendingType BlendingType);
This function sets the jeActor_BlendingType for jeActor A to BlendingType. jeActor_BlendingType sets the blending type used for blending poses and motions.Returns: nothing.
Notes:
from ACTOR.H: Selects a blending type. BlendingType only affects the meaning of the BlendAmount parameter for the blend functions. Can be changed anytime.
JETAPI jeBoolean JETCC jeActor_SetBody(jeActor_Def
*ActorDefinition, jeBody *jeBodyGeometry);
This function sets the jeBody for jeActor_Def ActorDefinition to jeBodyGeometry. Once set the ownership of jeBodyGeometry is transferred to ActorDefinition and it must not be destroyed.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Give the Actor Definition a Body. jeActor becomes responsible for its destruction. Sets up default materials as referenced by the Body.
JETAPI jeBoolean JETCC jeActor_SetBoneAttachment(jeActor
*A, const char *BoneName, jeXForm3d *Transform);
This function sets the position and orientation of the bone indicated by the name BoneName on jeActor A in jeXForm3d Transform.Returns: JE_TRUE on success, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_SetExtBox(jeActor
*A, const jeExtBox *ExtBox, const char *CenterBoxOnThisNamedBone);
This function sets the immutable basic bounding box of jeActor A to ExtBox and centers it on the bone indicated by CenterBoxOnThisNamedBone. If *CenterBoxOnThisNameBone is NULL then the root is used.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Sets an assigned general non changing bounding box for the actor
JETAPI jeBoolean JETCC jeActor_SetLightingOptions(jeActor
*A, jeBoolean UseFillLight, const jeVec3d *FillLightNormal, jeFloat FillLightRed,
jeFloat FillLightGreen, jeFloat FillLightBlue, jeFloat AmbientLightRed,
jeFloat AmbientLightGreen, jeFloat AmbientLightBlue, jeBoolean AmbientLightFromFloor,
int MaximumDynamicLightsToUse, int MaximumStaticLightToUse, const char
*LightReferenceBoneName, jeBoolean PerBoneLighting);
This function sets the lighting options for jeActor A. If UseFillLight is JE_TRUE then FillLightNormal specifies the direction of a directional light with color (FillLightRed, FillLightGreen, FillLightBlue) that will shine on A. (AmbientLightRed, AmbientLightGreen, AmbientLightBlue) sets the color and level of an overall ambient light level. Note that although the colors are jeFloat values they should be assigned integer values between 0 and 255. If AmbientLightFromFloor is GE_TRUE I guess it appears that the light is emerging from the floor? MaximumDynamicLightsToUse and MaximumStaticLightsToUse sets the maximum number of dynamic lights and static lights, respectively, to use for the lighting calculations for this actor. I assume that lowering this number would improve the rendering time for the jeActor. I would guess that the lights that are used are picked based on distance from the geActor. If PerBoneLighting is JE_TRUE then the lighting attenuation and direction is computed for each bone individually, if it is JE_FALSE then LightReferenceBoneName should indicate a bone which will be used to calculate this for the jeActor as a whole set *LightReferenceBoneName to NULL to use the root bone.Returns: JE_TRUE on success, JE_FALSE otherwise.
JETAPI jeBoolean JETCC jeActor_SetMaterial(jeActor
*Actor, int MaterialIndex, jeBitmap *Bitmap, jeFloat Red, jeFloat Green,
jeFloat Blue, jeUVMapper Mapper);
This function can be used to apply a jeBitmap Bitmap, color (Red, Green, Blue), and UV Mapping Mapper to an individual jeActor instance Actor.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Allows a material to be overriden in an actor instance
JETAPI void JETCC jeActor_SetPose(jeActor
*A, const jeMotion *Motion, jeFloat Time, const jeXForm3d *Transform);
This function sets the pose of jeActor A to jeMotion Motion at time offset Time positioned at Transform. If *Transform is NULL, the root of the jeActor is used as the position.Returns: nothing.
Notes:
from ACTOR.H: Poses the actor using given motion M at a time offset of Time. Transform is where to position the root for this pose. If Transform is NULL, the root for the pose is assumed to be the root of the actor.
JETAPI jeBoolean JETCC jeActor_SetRenderHintExtBox(jeActor
*A, const jeExtBox *Box, const char *CenterBoxOnThisNamedBone);
This function sets an axial-aligned RenderHintBox for jeActor A to Box and centers it about CenterBoxOnThisNameBone. If *CenterBoxOnThisNamedBone is NULL then the root bone is used to center the jeExtBox. A RenderHintBox is used to optimize the decision of whether the jeActor needs to be rendered. A simple extent-box test can be used rather than a more complex bone-by-bone test if this is set. If any portion of the jeActor extends outside of Box and only that portion of the jeActor would be visible then it will not be drawn. To disable the RenderHintBox call this with a zeroed jeExtBox.Returns: JE_TRUE on success, JE_FALSE otherwise.
Notes:
from ACTOR.H: Sets a rendering hint bounding box from the actor. Increases performance by enabling the rendering of the actor to occur only if the box is visible. If the box is not visible, a detailed analysis of the actor's current geometry is avoided. This does allow errors to occur: If the actor has a bit of geometry that extends outside this box for some animation, that extended geometry may not be drawn, if the box if off-screen. If the render hint box is not set, the engine will make no conservative assumptions about the visibility of an actor - it will always be drawn if any portion of it is visible. To attach the box to the 'root' bone, pass NULL for CenterBoxOnThisNamedBone. For disabling the hint box: (disabled is default) pass Box with zero mins and maxs
JETAPI void JETCC jeActor_SetScale(jeActor
*A, jeFloat ScaleX, jeFloat ScaleY, jeFloat ScaleZ);
This function scales the jeActor A by (ScaleX, ScaleY, ScaleZ).Returns: nothing.
JETAPI jeBoolean JETCC jeActor_SetShadow(jeActor
*A, jeBoolean DoShadow, jeFloat Radius, const jeBitmap *ShadowMap, const
char *BoneName);
This function sets the shadowmap option for jeActor A. If DoShadow is GE_TRUE then jeBitmap ShadowMap is used to create a cylindrical shadowmap about jeActor A centered on the bone indicated by BoneName with radius Radius. (I'm just guessing about the cylindrical stuff, maybe I'm totally off. I guess it could be a sphere that would make more sense probably. On reflection I think I'm way off on this one and just need to try it sometime.)Returns: JE_TRUE on success, JE_FALSE otherwise.
JETAPI void JETCC jeActor_SetUserData(jeActor
*A, void *UserData);
This function adds a pointer to userdata to jeActor A that can be used to store non-Jet3D information about an actor.Returns: nothing.
Notes:
from ACTOR.H: Sets the actors user data pointer to the given value. For clients only.