Defines a Terrain that is capable of rendering large landscapes from 2D heightmap images. More...
Inherits Node.
Classes | |
struct | DetailMap |
This struct maintain a detail map data ,including source file ,detail size. More... | |
struct | TerrainData |
This TerrainData struct warp all parameter that Terrain need to create. More... | |
struct | Triangle |
Triangle. More... | |
Public Types | |
enum | CrackFixedType |
the crack fix type. More... | |
Public Member Functions | |
void | setLightMap (const std::string &fileName) |
set light map texture | |
void | setLightDir (const Vec3 &lightDir) |
set directional light for the terrain The direction of directional light, Note that lightDir is in the terrain's local space. More... | |
bool | initProperties () |
initialize all Properties which terrain need | |
var | initProperties () |
initialize all Properties which terrain need | |
local | initProperties () |
initialize all Properties which terrain need | |
bool | initHeightMap (const std::string &heightMap) |
initialize heightMap data | |
var | initHeightMap ( var heightMap) |
initialize heightMap data | |
local | initHeightMap ( local heightMap) |
initialize heightMap data | |
bool | initTextures () |
initialize alphaMap ,detailMaps textures | |
var | initTextures () |
initialize alphaMap ,detailMaps textures | |
local | initTextures () |
initialize alphaMap ,detailMaps textures | |
float | getHeight (float x, float z, Vec3 *normal=nullptr) const |
get specified position's height mapping to the terrain,use bi-linear interpolation method the X position the Z position the specified position's normal vector in terrain . More... | |
local | getHeight ( local x, local z, local nullptr) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the X position the Z position the specified position's normal vector in terrain . More... | |
float | getHeight (Vec2 pos, Vec3 *Normal=nullptr) const |
get specified position's height mapping to the terrain,use bi-linear interpolation method the position (X,Z) the specified position's normal vector in terrain . More... | |
var | getHeight ( var pos, var nullptr) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the position (X,Z) the specified position's normal vector in terrain . More... | |
local | getHeight ( local pos, local nullptr) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the position (X,Z) the specified position's normal vector in terrain . More... | |
Vec3 | getNormal (int pixelX, int pixelY) const |
get the normal of the specified pistion in terrain the normal vector of the specified position of the terrain. | |
var | getNormal ( var pixelX, var pixelY) |
get the normal of the specified pistion in terrain the normal vector of the specified position of the terrain. | |
local | getNormal ( local pixelX, local pixelY) |
get the normal of the specified pistion in terrain the normal vector of the specified position of the terrain. | |
float | getImageHeight (int pixelX, int pixelY) const |
get height from the raw height filed the position of x in raw height the position of y in raw height the height of position(x,y) | |
void | setDrawWire (bool boolValue) |
show the wireline instead of the surface,Debug Use only the switching vale of method. | |
void | setLODDistance (float lod1, float lod2, float lod3) |
Set threshold distance of each LOD level,must equal or gereater than the chunk size the threshold of LOD level 1 the threshold of LOD level 2 the threshold of LOD level 3. | |
local | setLODDistance ( local lod1, local lod2, local lod3) |
Set threshold distance of each LOD level,must equal or gereater than the chunk size the threshold of LOD level 1 the threshold of LOD level 2 the threshold of LOD level 3. | |
void | setIsEnableFrustumCull (bool boolValue) |
Switch frustum Culling Flag the switching vale of method. | |
var | setIsEnableFrustumCull ( var boolValue) |
Switch frustum Culling Flag the switching vale of method. | |
local | setIsEnableFrustumCull ( local boolValue) |
Switch frustum Culling Flag the switching vale of method. | |
void | setAlphaMap (cocos2d::Texture2D *newAlphaMapTexture) |
set the alpha map a texture2d to be used as alpha map. | |
var | setAlphaMap ( var newAlphaMapTexture) |
set the alpha map a texture2d to be used as alpha map. | |
local | setAlphaMap ( local newAlphaMapTexture) |
set the alpha map a texture2d to be used as alpha map. | |
void | setDetailMap (unsigned int index, DetailMap detailMap) |
set the Detail Map the index of detailmap to be seted. More... | |
var | setDetailMap ( var index, var detailMap) |
set the Detail Map the index of detailmap to be seted. More... | |
local | setDetailMap ( local index, local detailMap) |
set the Detail Map the index of detailmap to be seted. More... | |
virtual void | draw (cocos2d::Renderer *renderer, const cocos2d::Mat4 &transform, uint32_t flags) override |
Override this method to draw your own node. More... | |
bool | getIntersectionPoint (const Ray &ray, Vec3 &intersectionPoint) const |
Ray-Terrain intersection. More... | |
var | getIntersectionPoint ( var ray, var intersectionPoint) |
Ray-Terrain intersection. More... | |
local | getIntersectionPoint ( local ray, local intersectionPoint) |
Ray-Terrain intersection. More... | |
Vec3 | getIntersectionPoint (const Ray &ray) const |
Ray-Terrain intersection. More... | |
void | setMaxDetailMapAmount (int maxValue) |
set the MaxDetailAmount. More... | |
var | setMaxDetailMapAmount ( var maxValue) |
set the MaxDetailAmount. More... | |
local | setMaxDetailMapAmount ( local maxValue) |
set the MaxDetailAmount. More... | |
Vec2 | convertToTerrainSpace (Vec2 worldSpace) const |
Convert a world Space position (X,Z) to terrain space position (X,Z) a world space position will be converted a terrain space position. | |
var | convertToTerrainSpace ( var worldSpace) |
Convert a world Space position (X,Z) to terrain space position (X,Z) a world space position will be converted a terrain space position. | |
local | convertToTerrainSpace ( local worldSpace) |
Convert a world Space position (X,Z) to terrain space position (X,Z) a world space position will be converted a terrain space position. | |
void | resetHeightMap (const char *heightMap) |
reset the heightmap data. More... | |
var | resetHeightMap ( var heightMap) |
reset the heightmap data. More... | |
local | resetHeightMap ( local heightMap) |
reset the heightmap data. More... | |
float | getMinHeight () |
get the terrain's mininal height. More... | |
var | getMinHeight () |
get the terrain's mininal height. More... | |
local | getMinHeight () |
get the terrain's mininal height. More... | |
float | getMaxHeight () |
get the terrain's maximum height. More... | |
var | getMaxHeight () |
get the terrain's maximum height. More... | |
local | getMaxHeight () |
get the terrain's maximum height. More... | |
AABB | getAABB () |
get the terrain's AABB(in world space) the AABB of map | |
var | getAABB () |
get the terrain's AABB(in world space) the AABB of map | |
local | getAABB () |
get the terrain's AABB(in world space) the AABB of map | |
void | setSkirtHeightRatio (float ratio) |
set the skirt height ratio the ratio of skirt height | |
var | setSkirtHeightRatio ( var ratio) |
set the skirt height ratio the ratio of skirt height | |
local | setSkirtHeightRatio ( local ratio) |
set the skirt height ratio the ratio of skirt height | |
QuadTree * | getQuadTree () |
get the terrain's quad tree which is also the root node. More... | |
void | reload () |
reload sky box after GLESContext reconstructed. | |
var | reload () |
reload sky box after GLESContext reconstructed. | |
local | reload () |
reload sky box after GLESContext reconstructed. | |
Size | getTerrainSize () const |
get the terrain's size the size of terrain | |
var | getTerrainSize () |
get the terrain's size the size of terrain | |
local | getTerrainSize () |
get the terrain's size the size of terrain | |
std::vector< float > | getHeightData () const |
get the terrain's height data the terrain's height data | |
Public Member Functions inherited from Node | |
virtual bool | isRunning () const |
Returns whether or not the node is "running". More... | |
var | isRunning () |
Returns whether or not the node is "running". More... | |
local | isRunning () |
Returns whether or not the node is "running". More... | |
void | scheduleUpdateWithPriorityLua (int handler, int priority) |
Schedules for lua script. More... | |
local | scheduleUpdateWithPriorityLua ( local handler, local priority) |
Schedules for lua script. More... | |
virtual void | cleanup () |
Stops and removes all running actions and schedulers. | |
var | cleanup () |
Stops and removes all running actions and schedulers. | |
local | cleanup () |
Stops and removes all running actions and schedulers. | |
virtual void | visit (Renderer *renderer, const Mat4 &parentTransform, uint32_t parentFlags) |
Visits this node's children and send their render command recursively. More... | |
local | visit ( local renderer, local parentTransform, local parentFlags) |
Visits this node's children and send their render command recursively. More... | |
virtual Scene * | getScene () const |
Returns the Scene that contains the Node. More... | |
virtual Rect | getBoundingBox () const |
Returns an AABB (axis-aligned bounding-box) in its parent's coordinate system. More... | |
virtual Rect | boundingBox () const |
local | boundingBox () |
virtual void | setEventDispatcher (EventDispatcher *dispatcher) |
Set event dispatcher for node. More... | |
virtual EventDispatcher * | getEventDispatcher () const |
Get the event dispatcher. More... | |
local | getEventDispatcher () |
Get the event dispatcher. More... | |
void | setPhysicsBody (PhysicsBody *body) |
Set the PhysicsBody that let the sprite effect with physics. More... | |
PhysicsBody * | getPhysicsBody () const |
Get the PhysicsBody the sprite have. More... | |
void | removeFromPhysicsWorld () |
Remove this node from physics world. More... | |
var | removeFromPhysicsWorld () |
Remove this node from physics world. More... | |
local | removeFromPhysicsWorld () |
Remove this node from physics world. More... | |
void | updateTransformFromPhysics (const Mat4 &parentTransform, uint32_t parentFlags) |
Update the transform matrix from physics. | |
var | updateTransformFromPhysics ( var parentTransform, var parentFlags) |
Update the transform matrix from physics. | |
local | updateTransformFromPhysics ( local parentTransform, local parentFlags) |
Update the transform matrix from physics. | |
virtual void | updatePhysicsBodyTransform (const Mat4 &parentTransform, uint32_t parentFlags, float parentScaleX, float parentScaleY) |
Update physics body transform matrix. | |
var | updatePhysicsBodyTransform ( var parentTransform, var parentFlags, var parentScaleX, var parentScaleY) |
Update physics body transform matrix. | |
local | updatePhysicsBodyTransform ( local parentTransform, local parentFlags, local parentScaleX, local parentScaleY) |
Update physics body transform matrix. | |
unsigned short | getCameraMask () const |
get & set camera mask, the node is visible by the camera whose camera flag & node's camera mask is true | |
virtual void | setLocalZOrder (int localZOrder) |
LocalZOrder is the 'key' used to sort the node relative to its siblings. More... | |
virtual void | setZOrder (int localZOrder) |
virtual void | _setLocalZOrder (int z) |
local | _setLocalZOrder ( local z) |
virtual int | getLocalZOrder () const |
Gets the local Z order of this node. More... | |
var | getLocalZOrder () |
Gets the local Z order of this node. More... | |
local | getLocalZOrder () |
Gets the local Z order of this node. More... | |
virtual int | getZOrder () const |
virtual void | setGlobalZOrder (float globalZOrder) |
Defines the oder in which the nodes are renderer. More... | |
local | setGlobalZOrder ( local globalZOrder) |
Defines the oder in which the nodes are renderer. More... | |
virtual float | getGlobalZOrder () const |
Returns the Node's Global Z Order. More... | |
virtual void | setScaleX (float scaleX) |
Sets the scale (x) of the node. More... | |
local | setScaleX ( local scaleX) |
Sets the scale (x) of the node. More... | |
virtual float | getScaleX () const |
Returns the scale factor on X axis of this node The scale factor on X axis. | |
virtual void | setScaleY (float scaleY) |
Sets the scale (y) of the node. More... | |
local | setScaleY ( local scaleY) |
Sets the scale (y) of the node. More... | |
virtual float | getScaleY () const |
Returns the scale factor on Y axis of this node The scale factor on Y axis. | |
virtual void | setScaleZ (float scaleZ) |
Changes the scale factor on Z axis of this node. More... | |
local | setScaleZ ( local scaleZ) |
Changes the scale factor on Z axis of this node. More... | |
virtual float | getScaleZ () const |
Returns the scale factor on Z axis of this node The scale factor on Z axis. | |
virtual void | setScale (float scale) |
Sets the scale (x,y,z) of the node. More... | |
local | setScale ( local scale) |
Sets the scale (x,y,z) of the node. More... | |
virtual float | getScale () const |
Gets the scale factor of the node, when X and Y have the same scale factor. More... | |
virtual void | setScale (float scaleX, float scaleY) |
Sets the scale (x,y) of the node. More... | |
local | setScale ( local scaleX, local scaleY) |
Sets the scale (x,y) of the node. More... | |
virtual void | setPosition (const Vec2 &position) |
Sets the position (x,y) of the node in its parent's coordinate system. More... | |
virtual void | setNormalizedPosition (const Vec2 &position) |
Sets the position (x,y) using values between 0 and 1. More... | |
var | setNormalizedPosition ( var position) |
Sets the position (x,y) using values between 0 and 1. More... | |
local | setNormalizedPosition ( local position) |
Sets the position (x,y) using values between 0 and 1. More... | |
virtual const Vec2 & | getPosition () const |
Gets the position (x,y) of the node in its parent's coordinate system. More... | |
virtual const Vec2 & | getNormalizedPosition () const |
Returns the normalized position. More... | |
virtual void | setPosition (float x, float y) |
Sets the position (x,y) of the node in its parent's coordinate system. More... | |
var | setPosition ( var x, var y) |
Sets the position (x,y) of the node in its parent's coordinate system. More... | |
local | setPosition ( local x, local y) |
Sets the position (x,y) of the node in its parent's coordinate system. More... | |
virtual void | getPosition (float *x, float *y) const |
Gets position in a more efficient way, returns two number instead of a Vec2 object. More... | |
virtual void | setPositionX (float x) |
Sets the x coordinate of the node in its parent's coordinate system. More... | |
virtual float | getPositionX (void) const |
Gets the x coordinate of the node in its parent's coordinate system. More... | |
virtual void | setPositionY (float y) |
Sets the y coordinate of the node in its parent's coordinate system. More... | |
virtual float | getPositionY (void) const |
Gets the y coordinate of the node in its parent's coordinate system. More... | |
virtual void | setPosition3D (const Vec3 &position) |
Sets the position (X, Y, and Z) in its parent's coordinate system. More... | |
virtual Vec3 | getPosition3D () const |
Returns the position (X,Y,Z) in its parent's coordinate system. More... | |
virtual void | setPositionZ (float positionZ) |
Sets the 'z' coordinate in the position. More... | |
local | setPositionZ ( local positionZ) |
Sets the 'z' coordinate in the position. More... | |
virtual void | setVertexZ (float vertexZ) |
virtual float | getPositionZ () const |
Gets position Z coordinate of this node. More... | |
var | getVertexZ () |
Gets position Z coordinate of this node. More... | |
local | getPositionZ () |
Gets position Z coordinate of this node. More... | |
virtual float | getVertexZ () const |
virtual void | setSkewX (float skewX) |
Changes the X skew angle of the node in degrees. More... | |
local | setSkewX ( local skewX) |
Changes the X skew angle of the node in degrees. More... | |
virtual float | getSkewX () const |
Returns the X skew angle of the node in degrees. More... | |
var | getSkewX () |
Returns the X skew angle of the node in degrees. More... | |
local | getSkewX () |
Returns the X skew angle of the node in degrees. More... | |
virtual void | setSkewY (float skewY) |
Changes the Y skew angle of the node in degrees. More... | |
local | setSkewY ( local skewY) |
Changes the Y skew angle of the node in degrees. More... | |
virtual float | getSkewY () const |
Returns the Y skew angle of the node in degrees. More... | |
var | getSkewY () |
Returns the Y skew angle of the node in degrees. More... | |
local | getSkewY () |
Returns the Y skew angle of the node in degrees. More... | |
virtual void | setAnchorPoint (const Vec2 &anchorPoint) |
Sets the anchor point in percent. More... | |
local | setAnchorPoint ( local anchorPoint) |
Sets the anchor point in percent. More... | |
virtual const Vec2 & | getAnchorPoint () const |
Returns the anchor point in percent. More... | |
virtual const Vec2 & | getAnchorPointInPoints () const |
Returns the anchorPoint in absolute pixels. More... | |
virtual void | setContentSize (const Size &contentSize) |
Sets the untransformed size of the node. More... | |
var | setContentSize ( var contentSize) |
Sets the untransformed size of the node. More... | |
local | setContentSize ( local contentSize) |
Sets the untransformed size of the node. More... | |
virtual const Size & | getContentSize () const |
Returns the untransformed size of the node. More... | |
var | getContentSize () |
Returns the untransformed size of the node. More... | |
local | getContentSize () |
Returns the untransformed size of the node. More... | |
virtual void | setVisible (bool visible) |
Sets whether the node is visible. More... | |
local | setVisible ( local visible) |
Sets whether the node is visible. More... | |
virtual bool | isVisible () const |
Determines if the node is visible. More... | |
virtual void | setRotation (float rotation) |
Sets the rotation (angle) of the node in degrees. More... | |
local | setRotation ( local rotation) |
Sets the rotation (angle) of the node in degrees. More... | |
virtual float | getRotation () const |
Returns the rotation of the node in degrees. More... | |
var | getRotation () |
Returns the rotation of the node in degrees. More... | |
local | getRotation () |
Returns the rotation of the node in degrees. More... | |
virtual void | setRotation3D (const Vec3 &rotation) |
Sets the rotation (X,Y,Z) in degrees. More... | |
local | setRotation3D ( local rotation) |
Sets the rotation (X,Y,Z) in degrees. More... | |
virtual Vec3 | getRotation3D () const |
Returns the rotation (X,Y,Z) in degrees. More... | |
virtual void | setRotationQuat (const Quaternion &quat) |
Set rotation by quaternion. More... | |
local | setRotationQuat ( local quat) |
Set rotation by quaternion. More... | |
virtual Quaternion | getRotationQuat () const |
Return the rotation by quaternion, Note that when _rotationZ_X == _rotationZ_Y, the returned quaternion equals to RotationZ_X * RotationY * RotationX, The rotation in quaternion. | |
virtual void | setRotationSkewX (float rotationX) |
Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More... | |
local | setRotationSkewX ( local rotationX) |
Sets the X rotation (angle) of the node in degrees which performs a horizontal rotational skew. More... | |
virtual void | setRotationX (float rotationX) |
var | setRotationX ( var rotationX) |
local | setRotationX ( local rotationX) |
virtual float | getRotationSkewX () const |
Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More... | |
local | getRotationSkewX () |
Gets the X rotation (angle) of the node in degrees which performs a horizontal rotation skew. More... | |
virtual float | getRotationX () const |
virtual void | setRotationSkewY (float rotationY) |
Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More... | |
local | setRotationSkewY ( local rotationY) |
Sets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More... | |
virtual void | setRotationY (float rotationY) |
local | setRotationY ( local rotationY) |
virtual float | getRotationSkewY () const |
Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More... | |
local | getRotationSkewY () |
Gets the Y rotation (angle) of the node in degrees which performs a vertical rotational skew. More... | |
virtual float | getRotationY () const |
void | setOrderOfArrival (int orderOfArrival) |
Sets the arrival order when this node has a same ZOrder with other children. More... | |
int | getOrderOfArrival () const |
Returns the arrival order, indicates which children is added previously. More... | |
void | setGLServerState (int serverState) |
var | setGLServerState ( var serverState) |
int | getGLServerState () const |
var | getGLServerState () |
virtual void | ignoreAnchorPointForPosition (bool ignore) |
Sets whether the anchor point will be (0,0) when you position this node. More... | |
virtual bool | isIgnoreAnchorPointForPosition () const |
Gets whether the anchor point will be (0,0) when you position this node. More... | |
virtual void | addChild (Node *child) |
Adds a child to the container with z-order as 0. More... | |
var | addChild ( var child) |
Adds a child to the container with z-order as 0. More... | |
local | addChild ( local child) |
Adds a child to the container with z-order as 0. More... | |
virtual void | addChild (Node *child, int localZOrder) |
Adds a child to the container with a local z-order. More... | |
local | addChild ( local child, local localZOrder) |
Adds a child to the container with a local z-order. More... | |
virtual void | addChild (Node *child, int localZOrder, int tag) |
Adds a child to the container with z order and tag. More... | |
local | addChild ( local child, local localZOrder, local tag) |
Adds a child to the container with z order and tag. More... | |
virtual void | addChild (Node *child, int localZOrder, const std::string &name) |
Adds a child to the container with z order and tag. More... | |
local | addChild ( local child, local localZOrder, local name) |
Adds a child to the container with z order and tag. More... | |
virtual Node * | getChildByTag (int tag) const |
Gets a child from the container with its tag. More... | |
template<typename T > | |
T | getChildByTag (int tag) const |
Gets a child from the container with its tag that can be cast to Type T. More... | |
template<typename T > | |
var | getChildByTag ( var tag) |
Gets a child from the container with its tag that can be cast to Type T. More... | |
template<typename T > | |
local | getChildByTag ( local tag) |
Gets a child from the container with its tag that can be cast to Type T. More... | |
virtual Node * | getChildByName (const std::string &name) const |
Gets a child from the container with its name. More... | |
template<typename T > | |
T | getChildByName (const std::string &name) const |
Gets a child from the container with its name that can be cast to Type T. More... | |
virtual void | enumerateChildren (const std::string &name, std::function< bool(Node *node)> callback) const |
Search the children of the receiving node to perform processing for nodes which share a name. More... | |
virtual Vector< Node * > & | getChildren () |
Returns the array of the node's children. More... | |
local | getChildren () |
Returns the array of the node's children. More... | |
virtual const Vector< Node * > & | getChildren () const |
local | getChildren () |
virtual ssize_t | getChildrenCount () const |
Returns the amount of children. More... | |
var | getChildrenCount () |
Returns the amount of children. More... | |
local | getChildrenCount () |
Returns the amount of children. More... | |
virtual void | setParent (Node *parent) |
Sets the parent node. More... | |
local | setParent ( local parent) |
Sets the parent node. More... | |
virtual Node * | getParent () |
Returns a pointer to the parent node. More... | |
virtual const Node * | getParent () const |
var | getParent () |
local | getParent () |
virtual void | removeFromParent () |
Removes this node itself from its parent node with a cleanup. More... | |
var | removeFromParent () |
Removes this node itself from its parent node with a cleanup. More... | |
local | removeFromParent () |
Removes this node itself from its parent node with a cleanup. More... | |
virtual void | removeFromParentAndCleanup (bool cleanup) |
Removes this node itself from its parent node. More... | |
local | removeFromParent ( local cleanup) |
Removes this node itself from its parent node. More... | |
virtual void | removeChild (Node *child, bool cleanup=true) |
Removes a child from the container. More... | |
virtual void | removeChildByTag (int tag, bool cleanup=true) |
Removes a child from the container by tag value. More... | |
var | removeChildByTag ( var tag, var true) |
Removes a child from the container by tag value. More... | |
local | removeChildByTag ( local tag, local true) |
Removes a child from the container by tag value. More... | |
virtual void | removeChildByName (const std::string &name, bool cleanup=true) |
Removes a child from the container by tag value. More... | |
var | removeChildByName ( var name, var true) |
Removes a child from the container by tag value. More... | |
local | removeChildByName ( local name, local true) |
Removes a child from the container by tag value. More... | |
virtual void | removeAllChildren () |
Removes all children from the container with a cleanup. | |
var | removeAllChildren () |
Removes all children from the container with a cleanup. | |
local | removeAllChildren () |
Removes all children from the container with a cleanup. | |
virtual void | removeAllChildrenWithCleanup (bool cleanup) |
Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. More... | |
local | removeAllChildren ( local cleanup) |
Removes all children from the container, and do a cleanup to all running actions depending on the cleanup parameter. More... | |
virtual void | reorderChild (Node *child, int localZOrder) |
Reorders a child according to a new z value. More... | |
virtual void | sortAllChildren () |
Sorts the children array once before drawing, instead of every time when a child is added or reordered. More... | |
local | sortAllChildren () |
Sorts the children array once before drawing, instead of every time when a child is added or reordered. More... | |
virtual int | getTag () const |
Returns a tag that is used to identify the node easily. More... | |
var | getTag () |
Returns a tag that is used to identify the node easily. More... | |
local | getTag () |
Returns a tag that is used to identify the node easily. More... | |
virtual void | setTag (int tag) |
Changes the tag that is used to identify the node easily. More... | |
local | setTag ( local tag) |
Changes the tag that is used to identify the node easily. More... | |
virtual const std::string & | getName () const |
Returns a string that is used to identify the node. More... | |
local | getName () |
Returns a string that is used to identify the node. More... | |
virtual void | setName (const std::string &name) |
Changes the name that is used to identify the node easily. More... | |
var | setName ( var name) |
Changes the name that is used to identify the node easily. More... | |
local | setName ( local name) |
Changes the name that is used to identify the node easily. More... | |
virtual void * | getUserData () |
Returns a custom user data pointer. More... | |
virtual const void * | getUserData () const |
virtual void | setUserData (void *userData) |
Sets a custom user data pointer. More... | |
virtual Ref * | getUserObject () |
Returns a user assigned Object. More... | |
virtual const Ref * | getUserObject () const |
virtual void | setUserObject (Ref *userObject) |
Returns a user assigned Object. More... | |
local | setUserObject ( local userObject) |
Returns a user assigned Object. More... | |
GLProgram * | getGLProgram () const |
Return the GLProgram (shader) currently used for this node. More... | |
var | getGLProgram () |
Return the GLProgram (shader) currently used for this node. More... | |
local | getGLProgram () |
Return the GLProgram (shader) currently used for this node. More... | |
GLProgram * | getShaderProgram () const |
var | getShaderProgram () |
local | getShaderProgram () |
virtual void | setGLProgram (GLProgram *glprogram) |
Sets the shader program for this node. More... | |
local | setGLProgram ( local glprogram) |
Sets the shader program for this node. More... | |
void | setShaderProgram (GLProgram *glprogram) |
var | setShaderProgram ( var glprogram) |
local | setShaderProgram ( local glprogram) |
GLProgramState * | getGLProgramState () const |
Return the GLProgramState currently used for this node. More... | |
var | getGLProgramState () |
Return the GLProgramState currently used for this node. More... | |
local | getGLProgramState () |
Return the GLProgramState currently used for this node. More... | |
virtual void | setGLProgramState (GLProgramState *glProgramState) |
Set the GLProgramState for this node. More... | |
local | setGLProgramState ( local glProgramState) |
Set the GLProgramState for this node. More... | |
virtual void | onEnterTransitionDidFinish () |
Event callback that is invoked when the Node enters in the 'stage'. More... | |
virtual void | onExit () |
Event callback that is invoked every time the Node leaves the 'stage'. More... | |
virtual void | onExitTransitionDidStart () |
Event callback that is called every time the Node leaves the 'stage'. More... | |
virtual void | setActionManager (ActionManager *actionManager) |
Sets the ActionManager object that is used by all actions. More... | |
var | setActionManager ( var actionManager) |
Sets the ActionManager object that is used by all actions. More... | |
local | setActionManager ( local actionManager) |
Sets the ActionManager object that is used by all actions. More... | |
virtual ActionManager * | getActionManager () |
Gets the ActionManager object that is used by all actions. More... | |
local | getActionManager () |
Gets the ActionManager object that is used by all actions. More... | |
virtual const ActionManager * | getActionManager () const |
local | getActionManager () |
virtual Action * | runAction (Action *action) |
Executes an action, and returns the action that is executed. More... | |
var | runAction ( var action) |
Executes an action, and returns the action that is executed. More... | |
local | runAction ( local action) |
Executes an action, and returns the action that is executed. More... | |
void | stopAllActions () |
Stops and removes all actions from the running action list . | |
var | stopAllActions () |
Stops and removes all actions from the running action list . | |
local | stopAllActions () |
Stops and removes all actions from the running action list . | |
void | stopAction (Action *action) |
Stops and removes an action from the running action list. More... | |
var | stopAction ( var action) |
Stops and removes an action from the running action list. More... | |
local | stopAction ( local action) |
Stops and removes an action from the running action list. More... | |
void | stopActionByTag (int tag) |
Removes an action from the running action list by its tag. More... | |
var | stopActionByTag ( var tag) |
Removes an action from the running action list by its tag. More... | |
local | stopActionByTag ( local tag) |
Removes an action from the running action list by its tag. More... | |
void | stopAllActionsByTag (int tag) |
Removes all actions from the running action list by its tag. More... | |
var | stopAllActionsByTag ( var tag) |
Removes all actions from the running action list by its tag. More... | |
local | stopAllActionsByTag ( local tag) |
Removes all actions from the running action list by its tag. More... | |
void | stopActionsByFlags (unsigned int flags) |
Removes all actions from the running action list by its flags. More... | |
Action * | getActionByTag (int tag) |
Gets an action from the running action list by its tag. More... | |
ssize_t | getNumberOfRunningActions () const |
Returns the numbers of actions that are running plus the ones that are schedule to run (actions in actionsToAdd and actions arrays). More... | |
ssize_t | numberOfRunningActions () const |
local | numberOfRunningActions () |
virtual void | setScheduler (Scheduler *scheduler) |
Sets a Scheduler object that is used to schedule all "updates" and timers. More... | |
virtual Scheduler * | getScheduler () |
Gets a Sheduler object. More... | |
virtual const Scheduler * | getScheduler () const |
local | getScheduler () |
bool | isScheduled (SEL_SCHEDULE selector) |
Checks whether a selector is scheduled. More... | |
bool | isScheduled (const std::string &key) |
Checks whether a lambda function is scheduled. More... | |
void | scheduleUpdate (void) |
Schedules the "update" method. More... | |
void | scheduleUpdateWithPriority (int priority) |
Schedules the "update" method with a custom priority. More... | |
void | unscheduleUpdate (void) |
void | schedule (SEL_SCHEDULE selector, float interval, unsigned int repeat, float delay) |
Schedules a custom selector. More... | |
void | schedule (SEL_SCHEDULE selector, float interval) |
Schedules a custom selector with an interval time in seconds. More... | |
void | scheduleOnce (SEL_SCHEDULE selector, float delay) |
Schedules a selector that runs only once, with a delay of 0 or larger The SEL_SCHEDULE selector to be scheduled. More... | |
void | scheduleOnce (const std::function< void(float)> &callback, float delay, const std::string &key) |
Schedules a lambda function that runs only once, with a delay of 0 or larger The lambda function to be scheduled. More... | |
void | schedule (SEL_SCHEDULE selector) |
Schedules a custom selector, the scheduled selector will be ticked every frame. More... | |
void | schedule (const std::function< void(float)> &callback, const std::string &key) |
Schedules a lambda function. More... | |
void | schedule (const std::function< void(float)> &callback, float interval, const std::string &key) |
Schedules a lambda function. More... | |
void | schedule (const std::function< void(float)> &callback, float interval, unsigned int repeat, float delay, const std::string &key) |
Schedules a lambda function. More... | |
var | schedule ( var callback, var interval, var repeat, var delay, var key) |
Schedules a lambda function. More... | |
void | unschedule (SEL_SCHEDULE selector) |
Unschedules a custom selector. More... | |
var | unschedule ( var selector) |
Unschedules a custom selector. More... | |
void | unschedule (const std::string &key) |
Unschedules a lambda function. More... | |
var | unschedule ( var key) |
Unschedules a lambda function. More... | |
void | unscheduleAllCallbacks () |
Unschedule all scheduled selectors and lambda functions: custom selectors, and the 'update' selector and lambda functions. | |
var | unscheduleAllCallbacks () |
Unschedule all scheduled selectors and lambda functions: custom selectors, and the 'update' selector and lambda functions. | |
void | unscheduleAllSelectors () |
var | unscheduleAllSelectors () |
local | unscheduleAllSelectors () |
virtual void | resume (void) |
Resumes all scheduled selectors, actions and event listeners. More... | |
local | resume () |
Resumes all scheduled selectors, actions and event listeners. More... | |
virtual void | pause (void) |
Pauses all scheduled selectors, actions and event listeners. More... | |
local | pause () |
Pauses all scheduled selectors, actions and event listeners. More... | |
void | resumeSchedulerAndActions () |
Resumes all scheduled selectors, actions and event listeners. More... | |
void | pauseSchedulerAndActions () |
Pauses all scheduled selectors, actions and event listeners. More... | |
var | pauseSchedulerAndActions () |
Pauses all scheduled selectors, actions and event listeners. More... | |
local | pauseSchedulerAndActions () |
Pauses all scheduled selectors, actions and event listeners. More... | |
virtual void | update (float delta) |
Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live". | |
var | update ( var delta) |
Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live". | |
local | update ( local delta) |
Update method will be called automatically every frame if "scheduleUpdate" is called, and the node is "live". | |
virtual void | updateTransform () |
Calls children's updateTransform() method recursively. More... | |
virtual const Mat4 & | getNodeToParentTransform () const |
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More... | |
virtual AffineTransform | getNodeToParentAffineTransform () const |
local | getNodeToParentAffineTransform () |
virtual Mat4 | getNodeToParentTransform (Node *ancestor) const |
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More... | |
local | getNodeToParentTransform ( local ancestor) |
Returns the matrix that transform the node's (local) space coordinates into the parent's space coordinates. More... | |
virtual AffineTransform | getNodeToParentAffineTransform (Node *ancestor) const |
Returns the affine transform matrix that transform the node's (local) space coordinates into the parent's space coordinates. More... | |
local | getNodeToParentAffineTransform ( local ancestor) |
Returns the affine transform matrix that transform the node's (local) space coordinates into the parent's space coordinates. More... | |
virtual void | setNodeToParentTransform (const Mat4 &transform) |
Sets the transformation matrix manually. More... | |
var | setNodeToParentTransform ( var transform) |
Sets the transformation matrix manually. More... | |
local | setNodeToParentTransform ( local transform) |
Sets the transformation matrix manually. More... | |
virtual AffineTransform | nodeToParentTransform () const |
local | nodeToParentTransform () |
virtual const Mat4 & | getParentToNodeTransform () const |
Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More... | |
var | getParentToNodeTransform () |
Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More... | |
local | getParentToNodeTransform () |
Returns the matrix that transform parent's space coordinates to the node's (local) space coordinates. More... | |
virtual AffineTransform | getParentToNodeAffineTransform () const |
local | getParentToNodeAffineTransform () |
virtual AffineTransform | parentToNodeTransform () const |
local | parentToNodeTransform () |
virtual Mat4 | getNodeToWorldTransform () const |
Returns the world affine transform matrix. More... | |
var | getNodeToWorldTransform () |
Returns the world affine transform matrix. More... | |
local | getNodeToWorldTransform () |
Returns the world affine transform matrix. More... | |
virtual AffineTransform | getNodeToWorldAffineTransform () const |
local | getNodeToWorldAffineTransform () |
virtual AffineTransform | nodeToWorldTransform () const |
local | nodeToWorldTransform () |
virtual Mat4 | getWorldToNodeTransform () const |
Returns the inverse world affine transform matrix. More... | |
var | getWorldToNodeTransform () |
Returns the inverse world affine transform matrix. More... | |
local | getWorldToNodeTransform () |
Returns the inverse world affine transform matrix. More... | |
virtual AffineTransform | getWorldToNodeAffineTransform () const |
local | getWorldToNodeAffineTransform () |
virtual AffineTransform | worldToNodeTransform () const |
local | worldToNodeTransform () |
Vec2 | convertToNodeSpace (const Vec2 &worldPoint) const |
Converts a Vec2 to node (local) space coordinates. More... | |
Vec2 | convertToWorldSpace (const Vec2 &nodePoint) const |
Converts a Vec2 to world space coordinates. More... | |
Vec2 | convertToNodeSpaceAR (const Vec2 &worldPoint) const |
Converts a Vec2 to node (local) space coordinates. More... | |
Vec2 | convertToWorldSpaceAR (const Vec2 &nodePoint) const |
Converts a local Vec2 to world space coordinates.The result is in Points. More... | |
Vec2 | convertTouchToNodeSpace (Touch *touch) const |
Convenience methods which take a Touch instead of Vec2. More... | |
var | convertTouchToNodeSpace ( var touch) |
Convenience methods which take a Touch instead of Vec2. More... | |
local | convertTouchToNodeSpace ( local touch) |
Convenience methods which take a Touch instead of Vec2. More... | |
Vec2 | convertTouchToNodeSpaceAR (Touch *touch) const |
Converts a Touch (world coordinates) into a local coordinate. More... | |
void | setAdditionalTransform (Mat4 *additionalTransform) |
Sets an additional transform matrix to the node. More... | |
void | setAdditionalTransform (const AffineTransform &additionalTransform) |
var | setAdditionalTransform ( var additionalTransform) |
local | setAdditionalTransform ( local additionalTransform) |
Component * | getComponent (const std::string &name) |
Gets a component by its name. More... | |
var | getComponent ( var name) |
Gets a component by its name. More... | |
local | getComponent ( local name) |
Gets a component by its name. More... | |
virtual bool | addComponent (Component *component) |
Adds a component. More... | |
virtual bool | removeComponent (const std::string &name) |
Removes a component by its name. More... | |
local | removeComponent ( local name) |
Removes a component by its name. More... | |
virtual bool | removeComponent (Component *component) |
Removes a component by its pointer. More... | |
local | removeComponent ( local component) |
Removes a component by its pointer. More... | |
virtual void | removeAllComponents () |
Removes all components. | |
virtual std::string | getDescription () const |
Gets the description string. More... | |
Public Member Functions inherited from Ref | |
void | retain () |
Retains the ownership. More... | |
local | retain () |
Retains the ownership. More... | |
void | release () |
Releases the ownership immediately. More... | |
Ref * | autorelease () |
Releases the ownership sometime soon automatically. More... | |
unsigned int | getReferenceCount () const |
Returns the Ref's current reference count. More... | |
local | getReferenceCount () |
Returns the Ref's current reference count. More... | |
virtual | ~Ref () |
Destructor. | |
Static Public Member Functions | |
static Terrain * | create (TerrainData ¶meter, CrackFixedType fixedType=CrackFixedType::INCREASE_LOWER) |
create and initialize terrain all parameter that Terrain need to create the crack fix type. More... | |
Static Public Member Functions inherited from Node | |
static Node * | create () |
Allocates and initializes a node. More... | |
var | create () |
Allocates and initializes a node. More... | |
local | create () |
Allocates and initializes a node. More... | |
Additional Inherited Members | |
Public Attributes inherited from Ref | |
unsigned int | _ID |
object id, ScriptSupport need public _ID | |
local | _ID |
object id, ScriptSupport need public _ID | |
int | _luaID |
Lua reference id. | |
local | _luaID |
Lua reference id. | |
void * | _scriptObject |
scriptObject, support for swift | |
local | _scriptObject |
scriptObject, support for swift | |
bool | _rooted |
When true, it means that the object was already rooted. | |
local | _rooted |
When true, it means that the object was already rooted. | |
bool | _scriptOwned |
The life of the object is scrolled by the scripting engine. More... | |
local | _scriptOwned |
The life of the object is scrolled by the scripting engine. More... | |
Static Public Attributes inherited from Node | |
static const int | INVALID_TAG = -1 |
Default tag used for all the nodes. | |
var | INVALID_TAG = -1 |
Default tag used for all the nodes. | |
local | INVALID_TAG = -1 |
Default tag used for all the nodes. | |
Defines a Terrain that is capable of rendering large landscapes from 2D heightmap images.
Terrains can be constructed from several different internal formats heightmap sources:
Terrain use TerrainData struct to initialize.the TerrainData struct warp all parameters that Terrain initialization need. TerrainData provide several handy constructor for users
Surface detail is provided via texture splatting, where multiple Detail texture layers can be added along with alpha map to define how different Detail texture blend with each other. These DetailTexture can be defined in TerrainData. The number of supported Detail texture is Four. although typically 2-3 levels is sufficient. For simple usage ,surface detail also is provided via simple Texture.
Internally, Terrain is divide into smaller, more manageable chunks, which can be culled separately for more efficient rendering. The size of the terrain chunks can be controlled via the chunkSize property in TerrainData.
Chunks are managed under the QuadTree.As DE FACTO terminal Node of the QuadTree; let us cull chunks efficientlly to reduce drawCall amount And reduce the VBOs'Size that pass to the GPU.
Level of detail (LOD) is supported using a technique that is similar to texture mipmapping – called GeoMapping. A distance-to-camera based test used to decide the appropriate LOD for a terrain chunk. The number of LOD levels is 0 by default (which means only the base level is used),the maxium number of LOD levels is 4. Of course ,you can hack the value individually.
Finally, when LOD is enabled, cracks can begin to appear between terrain Chunks of different LOD levels. An acceptable solution might be to simply reduce the lower LOD(high detail,smooth) chunks border, And let the higher LOD(rough) chunks to seamlessly connect it.
We can use ray-terrain intersection to pick a point of the terrain; Also we can get an arbitrary point of the terrain's height and normal vector for convenience .
void setLightDir | ( | const Vec3 & | lightDir | ) |
set directional light for the terrain The direction of directional light, Note that lightDir is in the terrain's local space.
Most of the time terrain is placed at (0,0,0) and without rotation, so lightDir is also in the world space.
var setLightDir | ( | var | lightDir | ) |
set directional light for the terrain The direction of directional light, Note that lightDir is in the terrain's local space.
Most of the time terrain is placed at (0,0,0) and without rotation, so lightDir is also in the world space.
local setLightDir | ( | local | lightDir | ) |
set directional light for the terrain The direction of directional light, Note that lightDir is in the terrain's local space.
Most of the time terrain is placed at (0,0,0) and without rotation, so lightDir is also in the world space.
|
static |
create and initialize terrain all parameter that Terrain need to create the crack fix type.
use to fix the gaps between different LOD chunks A initialized terrain which is marked as "autorelease
|
static |
create and initialize terrain all parameter that Terrain need to create the crack fix type.
use to fix the gaps between different LOD chunks A initialized terrain which is marked as "autorelease
|
static |
create and initialize terrain all parameter that Terrain need to create the crack fix type.
use to fix the gaps between different LOD chunks A initialized terrain which is marked as "autorelease
float getHeight | ( | float | x, |
float | z, | ||
Vec3 * | normal = nullptr |
||
) | const |
get specified position's height mapping to the terrain,use bi-linear interpolation method the X position the Z position the specified position's normal vector in terrain .
if this argument is NULL or nullptr,Normal calculation shall be skip. the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
var getHeight | ( | var | x, |
var | z, | ||
var | normal = nullptr |
||
) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the X position the Z position the specified position's normal vector in terrain .
if this argument is NULL or nullptr,Normal calculation shall be skip. the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
local getHeight | ( | local | x, |
local | z, | ||
local | normal = nullptr |
||
) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the X position the Z position the specified position's normal vector in terrain .
if this argument is NULL or nullptr,Normal calculation shall be skip. the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
get specified position's height mapping to the terrain,use bi-linear interpolation method the position (X,Z) the specified position's normal vector in terrain .
if this argument is NULL or nullptr,Normal calculation shall be skip. the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
var getHeight | ( | var | pos, |
var | Normal = nullptr |
||
) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the position (X,Z) the specified position's normal vector in terrain .
if this argument is NULL or nullptr,Normal calculation shall be skip. the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
local getHeight | ( | local | pos, |
local | Normal = nullptr |
||
) |
get specified position's height mapping to the terrain,use bi-linear interpolation method the position (X,Z) the specified position's normal vector in terrain .
if this argument is NULL or nullptr,Normal calculation shall be skip. the height value of the specified position of the terrain, if the (X,Z) position is out of the terrain bounds,it shall return 0;
void setDetailMap | ( | unsigned int | index, |
DetailMap | detailMap | ||
) |
set the Detail Map the index of detailmap to be seted.
the detailMap to be seted.
var setDetailMap | ( | var | index, |
var | detailMap | ||
) |
set the Detail Map the index of detailmap to be seted.
the detailMap to be seted.
local setDetailMap | ( | local | index, |
local | detailMap | ||
) |
set the Detail Map the index of detailmap to be seted.
the detailMap to be seted.
|
overridevirtual |
Override this method to draw your own node.
The following GL states will be enabled by default:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node. Reimplemented from Node.
|
overridevirtual |
Override this method to draw your own node.
The following GL states will be enabled by default:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node. Reimplemented from Node.
|
overridevirtual |
Override this method to draw your own node.
The following GL states will be enabled by default:
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_TEXTURE_2D);
AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE But if you enable any other GL state, you should disable it after drawing your node. Reimplemented from Node.
Ray-Terrain intersection.
The ray used for intersection Hit point if hitted. true if hit, false otherwise.
var getIntersectionPoint | ( | var | ray, |
var | intersectionPoint | ||
) |
Ray-Terrain intersection.
The ray used for intersection Hit point if hitted. true if hit, false otherwise.
local getIntersectionPoint | ( | local | ray, |
local | intersectionPoint | ||
) |
Ray-Terrain intersection.
The ray used for intersection Hit point if hitted. true if hit, false otherwise.
Ray-Terrain intersection.
the ray used for intersection the intersection point
var getIntersectionPoint | ( | var | ray | ) |
Ray-Terrain intersection.
the ray used for intersection the intersection point
local getIntersectionPoint | ( | local | ray | ) |
Ray-Terrain intersection.
the ray used for intersection the intersection point
void setMaxDetailMapAmount | ( | int | maxValue | ) |
set the MaxDetailAmount.
the maximum of detail map
var setMaxDetailMapAmount | ( | var | maxValue | ) |
set the MaxDetailAmount.
the maximum of detail map
local setMaxDetailMapAmount | ( | local | maxValue | ) |
set the MaxDetailAmount.
the maximum of detail map
void resetHeightMap | ( | const char * | heightMap | ) |
reset the heightmap data.
the new height map
var resetHeightMap | ( | var | heightMap | ) |
reset the heightmap data.
the new height map
local resetHeightMap | ( | local | heightMap | ) |
reset the heightmap data.
the new height map
float getMinHeight | ( | ) |
get the terrain's mininal height.
the min height of map
var getMinHeight | ( | ) |
get the terrain's mininal height.
the min height of map
local getMinHeight | ( | ) |
get the terrain's mininal height.
the min height of map
float getMaxHeight | ( | ) |
get the terrain's maximum height.
the max height of map
var getMaxHeight | ( | ) |
get the terrain's maximum height.
the max height of map
local getMaxHeight | ( | ) |
get the terrain's maximum height.
the max height of map
QuadTree* getQuadTree | ( | ) |
get the terrain's quad tree which is also the root node.
the terrain's quad tree
var getQuadTree | ( | ) |
get the terrain's quad tree which is also the root node.
the terrain's quad tree
local getQuadTree | ( | ) |
get the terrain's quad tree which is also the root node.
the terrain's quad tree