## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iSyntaxService Struct Reference
[Loading & Saving support, Loading & Saving support]

This component provides services for other loaders to easily parse properties of standard CS world syntax. More...

`#include <imap/services.h>`

Inheritance diagram for iSyntaxService:

[legend]
List of all members.

## Public Member Functions

virtual bool | HandlePortalParameter (iDocumentNode *child, iLoaderContext *ldr_context, uint32 &flags, bool &mirror, bool &warp, int &msv, csMatrix3 &m, csVector3 &before, csVector3 &after, iString *destSector, bool &handled, bool &autoresolve)=0
| Handles a common portal parameter.
virtual bool | ParseAlphaMode (iDocumentNode *node, iStringSet *strings, csAlphaMode &alphaMode, bool allowAutoMode=true)=0
| Parse an alphamode description.
virtual bool | ParseBool (iDocumentNode *node, bool &result, bool def_result)=0
| Parse the value of this node and return a boolean depending on this value.
virtual bool | ParseBoolAttribute (iDocumentNode *node, const char *attrname, bool &result, bool def_result, bool required)=0
| Parse the value of an attribute of this node and return a boolean depending on this value.
virtual bool | ParseBox (iDocumentNode *node, csBox3 &v)=0
| Parse a box description.
virtual bool | ParseColor (iDocumentNode *node, csColor4 &c)=0
| Parse a color description.
virtual bool | ParseColor (iDocumentNode *node, csColor &c)=0
| Parse a color description.
virtual bool | ParseGradient (iDocumentNode *node, csGradient &gradient)=0
| Parse a color gradient.
virtual bool | ParseKey (iDocumentNode *node, iKeyValuePair *&keyvalue)=0
| Parse a key definition.
virtual bool | ParseMatrix (iDocumentNode *node, csMatrix3 &m)=0
| Parse a matrix description.
virtual bool | ParseMixmode (iDocumentNode *node, uint &mixmode, bool allowFxMesh=false)=0
| Parse a mixmode description.
virtual bool | ParsePlane (iDocumentNode *node, csPlane3 &p)=0
| Parse a plane description.
virtual csRef< iRenderBuffer > | ParseRenderBuffer (iDocumentNode *node)=0
| Parse a user render buffer.
virtual csRef< iShader > | ParseShaderRef (iDocumentNode *node)=0
| Parse a node that is a reference to a shader.
virtual bool | ParseShaderVar (iDocumentNode *node, csShaderVariable &var)=0
| Parse a shader variable declaration.
virtual csRef< iShaderVariableAccessor > | ParseShaderVarExpr (iDocumentNode *node)=0
| Parse a shader variable expression.
virtual bool | ParseVector (iDocumentNode *node, csVector2 &v)=0
| Parse a vector description.
virtual bool | ParseVector (iDocumentNode *node, csVector3 &v)=0
| Parse a vector description.
virtual bool | ParseZMode (iDocumentNode *node, csZBufMode &zmode, bool allowZmesh=false)=0
| Attempt to parse a zmode from node.
virtual void | Report (const char *msgid, int severity, iDocumentNode *errornode, const char *msg,...)=0
| Report something, also gives a path in the XML tree.
virtual void | ReportBadToken (iDocumentNode *badtokennode)=0
| Report a bad token.
virtual void | ReportError (const char *msgid, iDocumentNode *errornode, const char *msg,...)=0
| Report an error and also gives a path in the XML tree.
virtual bool | WriteAlphaMode (iDocumentNode *node, iStringSet *strings, csAlphaMode *alphaMode)=0
| Write an alphamode description.
bool | WriteBool (iDocumentNode *node, const char *name, bool value, bool default_value)
| Write a node representing the value of the boolean, if it differs from a provided default value.
virtual bool | WriteBool (iDocumentNode *node, const char *name, bool value)=0
| Write a node representing the value of the boolean.
virtual bool | WriteBox (iDocumentNode *node, csBox3 *v)=0
| Write a box description.
virtual bool | WriteColor (iDocumentNode *node, csColor4 *c)=0
| Write a color description.
virtual bool | WriteColor (iDocumentNode *node, csColor *c)=0
| Write a color description.
virtual bool | WriteGradient (iDocumentNode *node, csGradient *gradient)=0
| Write a color gradient.
virtual bool | WriteKey (iDocumentNode *node, iKeyValuePair *keyvalue)=0
| Write a key definition and add the key to the given object, Returns true if successful.
virtual bool | WriteMatrix (iDocumentNode *node, csMatrix3 *m)=0
| Write a matrix description.
virtual bool | WriteMixmode (iDocumentNode *node, uint mixmode, bool allowFxMesh)=0
| Write a mixmode description.
virtual bool | WritePlane (iDocumentNode *node, csPlane3 &p)=0
| Write a plane description.
virtual bool | WriteShaderVar (iDocumentNode *node, csShaderVariable *var)=0
| Write a shader variable declaration.
virtual bool | WriteVector (iDocumentNode *node, csVector2 *v)=0
| Write a vector description.
virtual bool | WriteVector (iDocumentNode *node, csVector3 *v)=0
| Write a vector description.
virtual bool | WriteZMode (iDocumentNode *node, csZBufMode *zmode, bool allowZmesh)=0
| Write a ZMode description.

## Detailed Description

This component provides services for other loaders to easily parse properties of standard CS world syntax.

Definition at line 74 of file services.h.

## Member Function Documentation

virtual bool iSyntaxService::HandlePortalParameter | ( | iDocumentNode * | child,
|  | iLoaderContext * | ldr_context,
|  | uint32 & | flags,
|  | bool & | mirror,
|  | bool & | warp,
|  | int & | msv,
|  | csMatrix3 & | m,
|  | csVector3 & | before,
|  | csVector3 & | after,
|  | iString * | destSector,
|  | bool & | handled,
|  | bool & | autoresolve
| ) | `[pure virtual]`

| Handles a common portal parameter. flags: contains all flags found in the description. Returns false on failure. Returns false in 'handled' if it couldn't understand the token.

virtual bool iSyntaxService::ParseAlphaMode | ( | iDocumentNode * | node,
|  | iStringSet * | strings,
|  | csAlphaMode & | alphaMode,
|  | bool | allowAutoMode = `true`
| ) | `[pure virtual]`

| Parse an alphamode description. Returns true if successful.

virtual bool iSyntaxService::ParseBool | ( | iDocumentNode * | node,
|  | bool & | result,
|  | bool | def_result
| ) | `[pure virtual]`

Parse the value of this node and return a boolean depending on this value.

The following mapping happens (case insensitive):

- 1 -> true
- 0 -> false
- yes -> true
- no -> false
- true -> true
- false -> false
- on -> true
- off -> false
- (empty value) -> (def_result)
- (everyting else) -> error

virtual bool iSyntaxService::ParseBoolAttribute | ( | iDocumentNode * | node,
|  | const char * | attrname,
|  | bool & | result,
|  | bool | def_result,
|  | bool | required
| ) | `[pure virtual]`

Parse the value of an attribute of this node and return a boolean depending on this value.

The following mapping happens (case insensitive):

- 1 -> true
- 0 -> false
- yes -> true
- no -> false
- true -> true
- false -> false
- on -> true
- off -> false
- (empty value) -> (def_result)
- (everyting else) -> error
  Parameters:

    | node | Document node with the attribute to parse.
    | attrname | Name of the attribute.
    | result | Returns the result.
    | def_result | Default result value.
    | required | if this is true then not having the attribute will result in an error. If this is false then not having the attribute will result in the default value.

  Returns:
    Whether the parsing was successful. `false` if an error occured.

virtual bool iSyntaxService::ParseBox | ( | iDocumentNode * | node,
|  | csBox3 & | v
| ) | `[pure virtual]`

| Parse a box description. Returns true if successful.

virtual bool iSyntaxService::ParseColor | ( | iDocumentNode * | node,
|  | csColor4 & | c
| ) | `[pure virtual]`

| Parse a color description. Returns true if successful.

virtual bool iSyntaxService::ParseColor | ( | iDocumentNode * | node,
|  | csColor & | c
| ) | `[pure virtual]`

| Parse a color description. Returns true if successful.

virtual bool iSyntaxService::ParseGradient | ( | iDocumentNode * | node,
|  | csGradient & | gradient
| ) | `[pure virtual]`

| Parse a color gradient.

virtual bool iSyntaxService::ParseKey | ( | iDocumentNode * | node,
|  | iKeyValuePair *& | keyvalue
| ) | `[pure virtual]`

| Parse a key definition. A iKeyValuePair instance is return in "keyvalue", with refcount 1 Returns true if successful.

virtual bool iSyntaxService::ParseMatrix | ( | iDocumentNode * | node,
|  | csMatrix3 & | m
| ) | `[pure virtual]`

| Parse a matrix description. Returns true if successful.

virtual bool iSyntaxService::ParseMixmode | ( | iDocumentNode * | node,
|  | uint & | mixmode,
|  | bool | allowFxMesh = `false`
| ) | `[pure virtual]`

| Parse a mixmode description. Returns true if successful.

virtual bool iSyntaxService::ParsePlane | ( | iDocumentNode * | node,
|  | csPlane3 & | p
| ) | `[pure virtual]`

| Parse a plane description. Returns true if successful.

virtual csRef<iRenderBuffer> iSyntaxService::ParseRenderBuffer | ( | iDocumentNode * | node | ) | `[pure virtual]`

| Parse a user render buffer.

virtual csRef<iShader> iSyntaxService::ParseShaderRef | ( | iDocumentNode * | node | ) | `[pure virtual]`

Parse a node that is a reference to a shader.

Those nodes look like `<nodename name="shadername" file="/path/to/shader.xml" />`. First, the shader manager is queried for a shader of the name specified in the `name` attribute. If this failed, the shader is attempted to be loaded from the `file` specified. Note that if the name appearing in the shader file and the name of the `name` attribute mismatches, this method fails (and the loaded shader is not registered with the shader manager),

virtual bool iSyntaxService::ParseShaderVar | ( | iDocumentNode * | node,
|  | csShaderVariable & | var
| ) | `[pure virtual]`

| Parse a shader variable declaration.

virtual csRef<iShaderVariableAccessor> iSyntaxService::ParseShaderVarExpr | ( | iDocumentNode * | node | ) | `[pure virtual]`

| Parse a shader variable expression. Returns an acessor that can be set on a shader variable. The accessor subsequently evaluates the expression.

virtual bool iSyntaxService::ParseVector | ( | iDocumentNode * | node,
|  | csVector2 & | v
| ) | `[pure virtual]`

| Parse a vector description. Returns true if successful.

virtual bool iSyntaxService::ParseVector | ( | iDocumentNode * | node,
|  | csVector3 & | v
| ) | `[pure virtual]`

| Parse a vector description. Returns true if successful.

virtual bool iSyntaxService::ParseZMode | ( | iDocumentNode * | node,
|  | csZBufMode & | zmode,
|  | bool | allowZmesh = `false`
| ) | `[pure virtual]`

Attempt to parse a zmode from node.

allowZmesh specifies whether ZMESH and ZMESH2 zmodes should be saved to zmode or rejected, causing the method to fail and return 'false'.

Remarks:
  As z modes usually appear "in between" other document nodes, this function does not report an error if the token isn't recognized, but only returns 'false'.

virtual void iSyntaxService::Report | ( | const char * | msgid,
|  | int | severity,
|  | iDocumentNode * | errornode,
|  | const char * | msg,
|  |  | ...
| ) | `[pure virtual]`

Report something, also gives a path in the XML tree.

See also:
  Notes about string formatting in Crystal Space

virtual void iSyntaxService::ReportBadToken | ( | iDocumentNode * | badtokennode | ) | `[pure virtual]`

| Report a bad token. This is a convenience function which will eventually call ReportError().

virtual void iSyntaxService::ReportError | ( | const char * | msgid,
|  | iDocumentNode * | errornode,
|  | const char * | msg,
|  |  | ...
| ) | `[pure virtual]`

Report an error and also gives a path in the XML tree.

See also:
  Notes about string formatting in Crystal Space

virtual bool iSyntaxService::WriteAlphaMode | ( | iDocumentNode * | node,
|  | iStringSet * | strings,
|  | csAlphaMode * | alphaMode
| ) | `[pure virtual]`

| Write an alphamode description. Returns true if successful.

bool iSyntaxService::WriteBool | ( | iDocumentNode * | node,
|  | const char * | name,
|  | bool | value,
|  | bool | default_value
| ) | `[inline]`

| Write a node representing the value of the boolean, if it differs from a provided default value. Definition at line 128 of file services.h. References WriteBool().

virtual bool iSyntaxService::WriteBool | ( | iDocumentNode * | node,
|  | const char * | name,
|  | bool | value
| ) | `[pure virtual]`

| Write a node representing the value of the boolean. Referenced by WriteBool().

virtual bool iSyntaxService::WriteBox | ( | iDocumentNode * | node,
|  | csBox3 * | v
| ) | `[pure virtual]`

| Write a box description. Returns true if successful.

virtual bool iSyntaxService::WriteColor | ( | iDocumentNode * | node,
|  | csColor4 * | c
| ) | `[pure virtual]`

| Write a color description. Returns true if successful.

virtual bool iSyntaxService::WriteColor | ( | iDocumentNode * | node,
|  | csColor * | c
| ) | `[pure virtual]`

| Write a color description. Returns true if successful.

virtual bool iSyntaxService::WriteGradient | ( | iDocumentNode * | node,
|  | csGradient * | gradient
| ) | `[pure virtual]`

| Write a color gradient.

virtual bool iSyntaxService::WriteKey | ( | iDocumentNode * | node,
|  | iKeyValuePair * | keyvalue
| ) | `[pure virtual]`

| Write a key definition and add the key to the given object, Returns true if successful.

virtual bool iSyntaxService::WriteMatrix | ( | iDocumentNode * | node,
|  | csMatrix3 * | m
| ) | `[pure virtual]`

| Write a matrix description. Returns true if successful.

virtual bool iSyntaxService::WriteMixmode | ( | iDocumentNode * | node,
|  | uint | mixmode,
|  | bool | allowFxMesh
| ) | `[pure virtual]`

| Write a mixmode description. Returns true if successful.

virtual bool iSyntaxService::WritePlane | ( | iDocumentNode * | node,
|  | csPlane3 & | p
| ) | `[pure virtual]`

| Write a plane description. Returns true if successful.

virtual bool iSyntaxService::WriteShaderVar | ( | iDocumentNode * | node,
|  | csShaderVariable * | var
| ) | `[pure virtual]`

| Write a shader variable declaration.

virtual bool iSyntaxService::WriteVector | ( | iDocumentNode * | node,
|  | csVector2 * | v
| ) | `[pure virtual]`

| Write a vector description. Returns true if successful.

virtual bool iSyntaxService::WriteVector | ( | iDocumentNode * | node,
|  | csVector3 * | v
| ) | `[pure virtual]`

| Write a vector description. Returns true if successful.

virtual bool iSyntaxService::WriteZMode | ( | iDocumentNode * | node,
|  | csZBufMode * | zmode,
|  | bool | allowZmesh
| ) | `[pure virtual]`

| Write a ZMode description. Returns true if successful.

The documentation for this struct was generated from the following file:

- imap/services.h