---
name: "XRacer::BVRML"
section: "3pm"
platform: "linux"
package: "xracer-tools"
version: "0.96.9.1-13"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/XRacer::BVRML"
---

# XRacer::BVRML(3pm)

Parser for a tiny subset of VRML generated by Blender

## NAME

XRacer::BVRML - Parser for a tiny subset of VRML generated by Blender

## SYNOPSIS

```
  use XRacer::BVRML;
```

## DESCRIPTION

This is a parser for a tiny subset of VRML generated by Blender, so called Blender-VRML or BVRML. In fact, this parser is by no means guaranteed to be able to parse everything that Blender could generate. I will add parsing capability to it as I see the need.

`"XRacer::BVRML"` parses a Blender VRML file, and stores it in an internal *world* representation, which can be inspected and manipulated. `"XRacer::BVRML"` can also write out a C function containing GL commands which render this *world* object, and this function can then be used inside an XRacer track or craft file.

## CLASS METHODS

- $world = XRacer::BVRML-\>parse ($filename \[, $world\]);

  This function parses a BVRML file called `$filename`, and generates a `$world` object. If the second optional `$world` parameter is given, then the BVRML file is parsed and the results are merged with the existing `$world` object.

  If the parsing fails, then this function will print an error message and return `"undef"`.

## WORLD OBJECT METHODS

- $nr\_vertices = $world-\>nr\_vertices;

  Return the total number of vertices in the world.

- $nr\_faces = $world-\>nr\_faces;

  Return the total number of faces in the world.

- @vertices = $world-\>vertices;

  Aggregate all vertices in the world, and return it as a list.

- @faces = $world-\>faces;

  Aggregate all faces in the world, and return it as a list.

- ($smallest\_x, $largest\_x, $smallest\_y, $largest\_y, $smallest\_z, $largest\_z) = $world-\>bbox;

  Return the bounding box (or bounding cuboid, to be more precise) of this world.

- $world-\>write\_display\_function (\[name =\> $function\_name,\] \[filehandle =\> $filehandle,\] \[decl =\> $decl\]);

  Write out a C function containing GL calls which, when invoked, will display this world object. The C function is called `$function_name` and will be written to the file specified by the `$filehandle`. The function will be declared as `"void function_name (void)"` unless the `$decl` parameter is given, which gives the return declaration. The C function is suitable for directly linking into XRacer craft and track files. However, it requires some support. In particular, you will need to include the header file GL/gl.h, and probably xracer.h before the function.

## AUTHOR

```
  Richard W.M. Jones, <rich@annexia.org>
```

## COPYRIGHT

XRacer is copyright (C) 1999-2000 Richard W.M. Jones (rich@annexia.org) and other contributors listed in the AUTHORS file.

## SEE ALSO

[**perl**(1)](/perl/1.md), [**xracer**(6)](/xracer/6.md).
