prepare CKMesh
This commit is contained in:
@ -45,11 +45,11 @@ public class CommonHelper {
|
||||
|
||||
switch (comment.getType()) {
|
||||
case CKGeneralLexer.CKGENERAL_LINE_COMMENT: {
|
||||
return comment.getText().substring(2);
|
||||
return removeStars(comment.getText().substring(2));
|
||||
}
|
||||
case CKGeneralLexer.CKGENERAL_BLOCK_COMMENT: {
|
||||
String cache = comment.getText();
|
||||
return cache.substring(2, cache.length() - 4);
|
||||
return removeStars(cache.substring(2, cache.length() - 4));
|
||||
}
|
||||
default:
|
||||
return comment.getText();
|
||||
@ -75,7 +75,7 @@ public class CommonHelper {
|
||||
return text + " ";
|
||||
}).collect(Collectors.joining(""));
|
||||
}
|
||||
|
||||
|
||||
// =========== Number Operations ===========
|
||||
|
||||
/**
|
||||
@ -178,4 +178,14 @@ public class CommonHelper {
|
||||
return strl.replace("\n", "").replace("\r", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove redundent star '*' (at least 5 continuous star chars)
|
||||
* @param cmt The string provided.
|
||||
* @return The string processed.
|
||||
*/
|
||||
public static String removeStars(String cmt) {
|
||||
// only remove at least 5 continuous star chars.
|
||||
return cmt.replaceAll("\\*{5,}", "");
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -214,78 +214,6 @@ typedef enum CK_3DENTITY_FLAGS {
|
||||
} CK_3DENTITY_FLAGS;
|
||||
|
||||
|
||||
/*****************************************************************
|
||||
{filename:VX_MOVEABLE_FLAGS}
|
||||
Summary: 3dEntity additionnal flags Options
|
||||
|
||||
Remarks:
|
||||
+ The VX_MOVEABLE_FLAGS is used by CK3dEntity::SetMoveableFlags to specify different hints to the render engine about the entity.
|
||||
+ The (Engine) flags are set by the render engine and should not be modified by user. They can be checked with the CK3dEntity::GetMoveableFlags method.
|
||||
+ The (User) flags are to be set by the user or can be set by a specific method of CK3dEntity.
|
||||
|
||||
See Also: CK3dEntity::SetMoveableFlags
|
||||
******************************************************************/
|
||||
typedef enum VX_MOVEABLE_FLAGS {
|
||||
VX_MOVEABLE_PICKABLE =0x00000001, // (User)If not set this entity cannot be returned by CKRenderContext::Pick() or CKRenderContext::RectPict() functions.
|
||||
VX_MOVEABLE_VISIBLE =0x00000002, // (Engine) See CKObject::Show,CK3dEntity::IsVisible
|
||||
VX_MOVEABLE_UPTODATE =0x00000004, // (Engine) Used to Notify change in the data of the entity.
|
||||
VX_MOVEABLE_RENDERCHANNELS =0x00000008, // (User) If not set, additional material channels on the mesh used by this entity won't be rendered (CK3dEntity::SetRenderChannels)
|
||||
VX_MOVEABLE_USERBOX =0x00000010, // (Engine) When CK3dEntity::SetBoundingBox is called with a user box, this flag is set.
|
||||
VX_MOVEABLE_EXTENTSUPTODATE =0x00000020, // (Engine) Indicate that object 2D extents are up to date
|
||||
VX_MOVEABLE_BOXVALID =0x00004000, // (Engine) If not set the moveable has no mesh associated so its bounding box is irrelevant (a point).
|
||||
VX_MOVEABLE_RENDERLAST =0x00010000, // (User) If set the moveable will be rendered with the transparent objects (i.e in last) (CK3dEntity::SetRenderAsTransparent)
|
||||
VX_MOVEABLE_HASMOVED =0x00020000, // (Engine) Set when its position or orientation has changed. (Reset every frame when rendering starts)
|
||||
VX_MOVEABLE_WORLDALIGNED =0x00040000, // (User) Hint for render engine : this object is aligned with world position and orientation.
|
||||
VX_MOVEABLE_NOZBUFFERWRITE =0x00080000, // (User) Set by the user to warn Render Engine that this object must not write information to Z buffer
|
||||
VX_MOVEABLE_RENDERFIRST =0x00100000, // (User) If set the moveable will be rendered within the firsts objects
|
||||
VX_MOVEABLE_NOZBUFFERTEST =0x00200000, // (User) Set by the user to warn Render Engine that this object must not test against Z buffer (This override settings of all materials used by this Entity)
|
||||
VX_MOVEABLE_INVERSEWORLDMATVALID =0x00400000, // (Engine) Inverse world matrix is not up to date and should be recomputed
|
||||
VX_MOVEABLE_DONTUPDATEFROMPARENT =0x00800000, // (User) This object will not be updated by parent (neither World nor Local matrix wil be updated) . This flags can be used by physic engine for example in which hierarchy is not relevant for physicalised objects
|
||||
VX_MOVEABLE_INDIRECTMATRIX =0x01000000, // (User/Engine) Set by the engine at load time : The object matrix is in left hand referential, culling needs to be inverted
|
||||
VX_MOVEABLE_ZBUFONLY =0x02000000, // (User) The object will only be rendered in depth buffer
|
||||
VX_MOVEABLE_STENCILONLY =0x04000000, // (User) The object will only be rendered in stencil buffer
|
||||
VX_MOVEABLE_HIERARCHICALHIDE =0x10000000, // (Engine) If Object has this flags and is hidden its children won't be rendered
|
||||
VX_MOVEABLE_CHARACTERRENDERED =0x20000000, // (Engine) Set if a character was rendered last frame...
|
||||
VX_MOVEABLE_RESERVED2 =0x40000000, // (Engine)
|
||||
} VX_MOVEABLE_FLAGS;
|
||||
|
||||
|
||||
/*****************************************************************
|
||||
{filename:VXMESH_FLAGS}
|
||||
Summary:Mesh Flags Options
|
||||
|
||||
Remarks:
|
||||
+ The VXMESH_FLAGS is used by CKMesh::SetFlags to specify different hints to the render engine about the mesh.
|
||||
+ Most of this flags can be set or asked using the appropriate method of CKMesh (given between () in the members documentation).
|
||||
See Also: CKMesh,CKMesh::SetFlags
|
||||
******************************************************************/
|
||||
typedef enum VXMESH_FLAGS
|
||||
{
|
||||
VXMESH_BOUNDINGUPTODATE = 0x00000001, // If set the bounding box is up to date (internal).
|
||||
VXMESH_VISIBLE = 0x00000002, // If not set the mesh will not be rendered (CKMesh::Show)
|
||||
VXMESH_OPTIMIZED = 0x00000004, // Set by the render engine if the mesh is optimized for rendering. Unset it to force to recreate optimized structures (when changing materials or face organization ) (CKMesh::VertexMove)
|
||||
VXMESH_RENDERCHANNELS = 0x00000008, // If not set Additional material channels won't be rendered.
|
||||
VXMESH_HASTRANSPARENCY = 0x00000010, // If set indicates that one or more of the faces of this mesh use a transparent material (internal)
|
||||
VXMESH_PRELITMODE = 0x00000080, // If set, no lightning should occur for this mesh, vertex color should be used instead (CKMesh::SetLitMode)
|
||||
VXMESH_WRAPU = 0x00000100, // Texture coordinates wrapping among u texture coordinates. (CKMesh::SetWrapMode)
|
||||
VXMESH_WRAPV = 0x00000200, // Texture coordinates wrapping among v texture coordinates. (CKMesh::SetWrapMode)
|
||||
VXMESH_FORCETRANSPARENCY = 0x00001000, // Forces this mesh to be considered as transparent even if no material is tranparent. (CKMesh::SetTransparent)
|
||||
VXMESH_TRANSPARENCYUPTODATE = 0x00002000, // If set, the flags VXMESH_HASTRANSPARENCY is up to date. (internal)
|
||||
VXMESH_UV_CHANGED = 0x00004000, // Must be set if texture coordinates changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::UVChanged)
|
||||
VXMESH_NORMAL_CHANGED = 0x00008000, // Must be set if normal coordinates changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::NormalChanged)
|
||||
VXMESH_COLOR_CHANGED = 0x00010000, // Must be set if colors changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::ColorChanged)
|
||||
VXMESH_POS_CHANGED = 0x00020000, // Must be set if vertex position changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::VertexMove)
|
||||
VXMESH_HINTDYNAMIC = 0x00040000, // Hint for render engine : Mesh geometry is updated frequently
|
||||
VXMESH_GENNORMALS = 0x00080000, // Hint : Normals were generated by BuildNormals : Do not save (internal)
|
||||
VXMESH_PROCEDURALUV = 0x00100000, // Hint : UVs are generated : Do not save (internal)
|
||||
VXMESH_PROCEDURALPOS = 0x00200000, // Hint : Vertices postions are generated : Do not save (internal)
|
||||
VXMESH_STRIPIFY = 0x00400000, // If set the mesh will be stripified.
|
||||
VXMESH_MONOMATERIAL = 0x00800000, // Set by the render engine if the mesh use only one material.
|
||||
VXMESH_PM_BUILDNORM = 0x01000000, // Build normals when performing progressive meshing : Do not save (internal)
|
||||
VXMESH_BWEIGHTS_CHANGED = 0x02000000, // Must be set if vertex blend weights have changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::VertexMove)
|
||||
VXMESH_ALLFLAGS = 0x007FF39F
|
||||
} VXMESH_FLAGS;
|
||||
|
||||
/*************************************************
|
||||
{filename:CK_TEXTURE_SAVEOPTIONS}
|
||||
Summary: Specify the way textures or sprites will be saved
|
||||
|
@ -230,3 +230,127 @@ typedef enum VX_EFFECT
|
||||
VXEFFECT_MASK = 0xFUL // Mask for all possible values.
|
||||
} VX_EFFECT;
|
||||
|
||||
|
||||
/*****************************************************************
|
||||
{filename:VX_MOVEABLE_FLAGS}
|
||||
Summary: 3dEntity additionnal flags Options
|
||||
|
||||
Remarks:
|
||||
+ The VX_MOVEABLE_FLAGS is used by CK3dEntity::SetMoveableFlags to specify different hints to the render engine about the entity.
|
||||
+ The (Engine) flags are set by the render engine and should not be modified by user. They can be checked with the CK3dEntity::GetMoveableFlags method.
|
||||
+ The (User) flags are to be set by the user or can be set by a specific method of CK3dEntity.
|
||||
|
||||
See Also: CK3dEntity::SetMoveableFlags
|
||||
******************************************************************/
|
||||
typedef enum VX_MOVEABLE_FLAGS {
|
||||
VX_MOVEABLE_PICKABLE =0x00000001, // (User)If not set this entity cannot be returned by CKRenderContext::Pick() or CKRenderContext::RectPict() functions.
|
||||
VX_MOVEABLE_VISIBLE =0x00000002, // (Engine) See CKObject::Show,CK3dEntity::IsVisible
|
||||
VX_MOVEABLE_UPTODATE =0x00000004, // (Engine) Used to Notify change in the data of the entity.
|
||||
VX_MOVEABLE_RENDERCHANNELS =0x00000008, // (User) If not set, additional material channels on the mesh used by this entity won't be rendered (CK3dEntity::SetRenderChannels)
|
||||
VX_MOVEABLE_USERBOX =0x00000010, // (Engine) When CK3dEntity::SetBoundingBox is called with a user box, this flag is set.
|
||||
VX_MOVEABLE_EXTENTSUPTODATE =0x00000020, // (Engine) Indicate that object 2D extents are up to date
|
||||
VX_MOVEABLE_BOXVALID =0x00004000, // (Engine) If not set the moveable has no mesh associated so its bounding box is irrelevant (a point).
|
||||
VX_MOVEABLE_RENDERLAST =0x00010000, // (User) If set the moveable will be rendered with the transparent objects (i.e in last) (CK3dEntity::SetRenderAsTransparent)
|
||||
VX_MOVEABLE_HASMOVED =0x00020000, // (Engine) Set when its position or orientation has changed. (Reset every frame when rendering starts)
|
||||
VX_MOVEABLE_WORLDALIGNED =0x00040000, // (User) Hint for render engine : this object is aligned with world position and orientation.
|
||||
VX_MOVEABLE_NOZBUFFERWRITE =0x00080000, // (User) Set by the user to warn Render Engine that this object must not write information to Z buffer
|
||||
VX_MOVEABLE_RENDERFIRST =0x00100000, // (User) If set the moveable will be rendered within the firsts objects
|
||||
VX_MOVEABLE_NOZBUFFERTEST =0x00200000, // (User) Set by the user to warn Render Engine that this object must not test against Z buffer (This override settings of all materials used by this Entity)
|
||||
VX_MOVEABLE_INVERSEWORLDMATVALID =0x00400000, // (Engine) Inverse world matrix is not up to date and should be recomputed
|
||||
VX_MOVEABLE_DONTUPDATEFROMPARENT =0x00800000, // (User) This object will not be updated by parent (neither World nor Local matrix wil be updated) . This flags can be used by physic engine for example in which hierarchy is not relevant for physicalised objects
|
||||
VX_MOVEABLE_INDIRECTMATRIX =0x01000000, // (User/Engine) Set by the engine at load time : The object matrix is in left hand referential, culling needs to be inverted
|
||||
VX_MOVEABLE_ZBUFONLY =0x02000000, // (User) The object will only be rendered in depth buffer
|
||||
VX_MOVEABLE_STENCILONLY =0x04000000, // (User) The object will only be rendered in stencil buffer
|
||||
VX_MOVEABLE_HIERARCHICALHIDE =0x10000000, // (Engine) If Object has this flags and is hidden its children won't be rendered
|
||||
VX_MOVEABLE_CHARACTERRENDERED =0x20000000, // (Engine) Set if a character was rendered last frame...
|
||||
VX_MOVEABLE_RESERVED2 =0x40000000, // (Engine)
|
||||
} VX_MOVEABLE_FLAGS;
|
||||
|
||||
|
||||
/*****************************************************************
|
||||
{filename:VXMESH_FLAGS}
|
||||
Summary:Mesh Flags Options
|
||||
|
||||
Remarks:
|
||||
+ The VXMESH_FLAGS is used by CKMesh::SetFlags to specify different hints to the render engine about the mesh.
|
||||
+ Most of this flags can be set or asked using the appropriate method of CKMesh (given between () in the members documentation).
|
||||
See Also: CKMesh,CKMesh::SetFlags
|
||||
******************************************************************/
|
||||
typedef enum VXMESH_FLAGS
|
||||
{
|
||||
VXMESH_BOUNDINGUPTODATE = 0x00000001, // If set the bounding box is up to date (internal).
|
||||
VXMESH_VISIBLE = 0x00000002, // If not set the mesh will not be rendered (CKMesh::Show)
|
||||
VXMESH_OPTIMIZED = 0x00000004, // Set by the render engine if the mesh is optimized for rendering. Unset it to force to recreate optimized structures (when changing materials or face organization ) (CKMesh::VertexMove)
|
||||
VXMESH_RENDERCHANNELS = 0x00000008, // If not set Additional material channels won't be rendered.
|
||||
VXMESH_HASTRANSPARENCY = 0x00000010, // If set indicates that one or more of the faces of this mesh use a transparent material (internal)
|
||||
VXMESH_PRELITMODE = 0x00000080, // If set, no lightning should occur for this mesh, vertex color should be used instead (CKMesh::SetLitMode)
|
||||
VXMESH_WRAPU = 0x00000100, // Texture coordinates wrapping among u texture coordinates. (CKMesh::SetWrapMode)
|
||||
VXMESH_WRAPV = 0x00000200, // Texture coordinates wrapping among v texture coordinates. (CKMesh::SetWrapMode)
|
||||
VXMESH_FORCETRANSPARENCY = 0x00001000, // Forces this mesh to be considered as transparent even if no material is tranparent. (CKMesh::SetTransparent)
|
||||
VXMESH_TRANSPARENCYUPTODATE = 0x00002000, // If set, the flags VXMESH_HASTRANSPARENCY is up to date. (internal)
|
||||
VXMESH_UV_CHANGED = 0x00004000, // Must be set if texture coordinates changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::UVChanged)
|
||||
VXMESH_NORMAL_CHANGED = 0x00008000, // Must be set if normal coordinates changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::NormalChanged)
|
||||
VXMESH_COLOR_CHANGED = 0x00010000, // Must be set if colors changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::ColorChanged)
|
||||
VXMESH_POS_CHANGED = 0x00020000, // Must be set if vertex position changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::VertexMove)
|
||||
VXMESH_HINTDYNAMIC = 0x00040000, // Hint for render engine : Mesh geometry is updated frequently
|
||||
VXMESH_GENNORMALS = 0x00080000, // Hint : Normals were generated by BuildNormals : Do not save (internal)
|
||||
VXMESH_PROCEDURALUV = 0x00100000, // Hint : UVs are generated : Do not save (internal)
|
||||
VXMESH_PROCEDURALPOS = 0x00200000, // Hint : Vertices postions are generated : Do not save (internal)
|
||||
VXMESH_STRIPIFY = 0x00400000, // If set the mesh will be stripified.
|
||||
VXMESH_MONOMATERIAL = 0x00800000, // Set by the render engine if the mesh use only one material.
|
||||
VXMESH_PM_BUILDNORM = 0x01000000, // Build normals when performing progressive meshing : Do not save (internal)
|
||||
VXMESH_BWEIGHTS_CHANGED = 0x02000000, // Must be set if vertex blend weights have changed to enable the render engine to reconstruct potential display lists or vertex buffers. (CKMesh::VertexMove)
|
||||
VXMESH_ALLFLAGS = 0x007FF39F
|
||||
} VXMESH_FLAGS;
|
||||
|
||||
|
||||
/******************************************************************
|
||||
{filename:VXMESH_LITMODE}
|
||||
Summary: Mesh lighting options
|
||||
|
||||
Remarks:
|
||||
+ The VXMESH_LITMODE is used by CKMesh::SetLitMode to specify how lighting is done.
|
||||
See Also: CKMaterial,CKMesh
|
||||
******************************************************************/
|
||||
typedef enum VXMESH_LITMODE
|
||||
{
|
||||
VX_PRELITMESH = 0, // Lighting use color information store with vertices
|
||||
VX_LITMESH = 1, // Lighting is done by renderer using normals and face material information.
|
||||
} VXMESH_LITMODE;
|
||||
|
||||
/*****************************************************************
|
||||
{filename:VXCHANNEL_FLAGS}
|
||||
Summary:Mesh additionnal material channel options
|
||||
|
||||
Remarks:
|
||||
+ The VXCHANNEL_FLAGS is used by CKMesh::SetChannelFlags to give the behavior of
|
||||
an additional material channel.
|
||||
See Also: CKMesh,CKMesh::AddChannel,CKMesh::IsChannelLit,CKMesh::IsChannelActive
|
||||
******************************************************************/
|
||||
typedef enum VXCHANNEL_FLAGS {
|
||||
VXCHANNEL_ACTIVE = 0x00000001, // This channel is active
|
||||
VXCHANNEL_SAMEUV = 0x00800000, // This channel should use the texture coordinates of the base mesh.
|
||||
VXCHANNEL_NOTLIT = 0x01000000, // Additionnal Material Channel should not be lit (some channels may not be rendered in one pass with this option)
|
||||
VXCHANNEL_MONO = 0x02000000, // Set at runtime by render engine to indicate whether this channel was rendered using multiple pass or not.(Dot Not Modify)
|
||||
VXCHANNEL_RESERVED1 = 0x04000000, // Reserved for internal use
|
||||
VXCHANNEL_LAST = 0x08000000, // Set at runtime by render engine to indicate this channel isthe last to be rendered. Dot Not Modify
|
||||
} VXCHANNEL_FLAGS;
|
||||
|
||||
/****************************************************************
|
||||
{filename:VXTEXTURE_WRAPMODE}
|
||||
Summary: Wrapping Flags
|
||||
|
||||
Remarks:
|
||||
+ The VXTEXTURE_WRAPMODE is used by CKMesh::SetWrapMode() to specify how
|
||||
texture coordinates are interpolated.
|
||||
See Also: Using Materials,CKMaterial,CKMesh::SetWrapMode.
|
||||
****************************************************************/
|
||||
typedef enum VXTEXTURE_WRAPMODE
|
||||
{
|
||||
VXTEXTUREWRAP_NONE = 0x00000000, // Flat texture addressing
|
||||
VXTEXTUREWRAP_U = 0x00000001, // Vertical cylinder mapping
|
||||
VXTEXTUREWRAP_V = 0x00000002, // Horizontal cylinder mapping
|
||||
VXTEXTUREWRAP_UV = 0x00000003, // Spherical mapping
|
||||
} VXTEXTURE_WRAPMODE;
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user