Packageorg.papervision3d.objects.parsers
Classpublic class MD2
InheritanceMD2 Inheritance TriangleMesh3D Inheritance Vertices3D Inheritance DisplayObject3D Inheritance DisplayObjectContainer3D Inheritance flash.events.EventDispatcher
ImplementsIAnimatable, IAnimationDataProvider

Loads Quake 2 MD2 file with animation!

Please feel free to use, but please mention me!



Public Properties
 PropertyDefined by
 Inheritedalpha : Number = 1
DisplayObject3D
 InheritedautoCalcScreenCoords : Boolean
DisplayObject3D
 InheritedblendMode : String = "normal"
DisplayObject3D
 Inheritedchildren : Object
Returns the children object.
DisplayObjectContainer3D
 Inheritedcontainer : ViewportLayer
DisplayObject3D
 Inheritedculled : Boolean
[internal use] Is this object culled by camera frustum?
DisplayObject3D
 InheritedcullTest : Number = 0
DisplayObject3D
 Inheritedextra : Object
An object that contains user defined properties.
DisplayObject3D
 InheritedfaceLevelMode : Boolean
[static] This allows objects faces to have their own containers.
DisplayObject3D
 Inheritedfaces : Array
[internal-use]
DisplayObject3D
 Inheritedfilters : Array
DisplayObject3D
 InheritedflipLightDirection : Boolean = false
DisplayObject3D
  fps : uint
[read-only] Gets the default FPS.
MD2
 InheritedfrustumTestMethod : int = 0
DisplayObject3D
 Inheritedgeometry : GeometryObject3D
The GeometryObject3D object that contains the 3D definition of this instance.
DisplayObject3D
 Inheritedid : int
[read-only] Unique id of this instance.
DisplayObject3D
 InheritedlocalRotationX : Number
DisplayObject3D
 InheritedlocalRotationY : Number
DisplayObject3D
 InheritedlocalRotationZ : Number
DisplayObject3D
 Inheritedmaterial : MaterialObject3D
TriangleMesh3D
 Inheritedmaterials : MaterialsList
The list of materials for this instance.
DisplayObject3D
 InheritedmeshSort : uint = 1
tells Mesh3D's render() method to compare the measurement choice of the user for a triangle's sorting
DisplayObject3D
 Inheritedname : String
An optional object name.
DisplayObject3D
 InheritednumChildren : int
Returns the number of children of this object.
DisplayObjectContainer3D
 Inheritedparent : DisplayObjectContainer3D
[read-only] Indicates the DisplayObjectContainer3D object that contains this display object.
DisplayObject3D
 InheritedparentContainer : DisplayObject3D
DisplayObject3D
 Inheritedposition : Number3D
A Number3D containing the current x, y, and z of the DisplayObject3D
DisplayObject3D
 Inheritedroot : DisplayObjectContainer3D
[read-only] [read-only] The scene, which is the top-most displayObjectContainer3D in the tree structure.
DisplayObjectContainer3D
 InheritedrotationX : Number
Specifies the rotation around the X axis from its original orientation.
DisplayObject3D
 InheritedrotationY : Number
Specifies the rotation around the Y axis from its original orientation.
DisplayObject3D
 InheritedrotationZ : Number
Specifies the rotation around the Z axis from its original orientation.
DisplayObject3D
 Inheritedscale : Number
Sets the 3D scale as applied from the registration point of the object.
DisplayObject3D
 InheritedscaleX : Number
Sets the scale along the local X axis as applied from the registration point of the object.
DisplayObject3D
 InheritedscaleY : Number
Sets the scale along the local Y axis as applied from the registration point of the object.
DisplayObject3D
 InheritedscaleZ : Number
Sets the scale along the local Z axis as applied from the registration point of the object.
DisplayObject3D
 Inheritedscene : SceneObject3D
DisplayObject3D
 InheritedsceneX : Number
The X coordinate of a object relative to the scene coordinate system.
DisplayObject3D
 InheritedsceneY : Number
The Y coordinate of a object relative to the scene coordinate system.
DisplayObject3D
 InheritedsceneZ : Number
The Z coordinate of a object relative to the scene coordinate system.
DisplayObject3D
 Inheritedscreen : Number3D
[read-only] The coordinate of the object on screen.
DisplayObject3D
 InheritedscreenZ : Number
[internal-use] The average depth of the object faces center.
DisplayObject3D
 InheritedsortedArray : Array
[static]
DisplayObject3D
 InheritedtestQuad : Boolean = true
DisplayObject3D
 Inheritedtransform : Matrix3D
A Matrix3D object containing values that affect the scaling, rotation, and translation of the display object.
DisplayObject3D
 InheriteduseClipping : Boolean = true
DisplayObject3D
 InheriteduseOwnContainer : Boolean
DisplayObject3D
 InheriteduserData : UserData
DisplayObject3D
 Inheritedview : Matrix3D
[internal-use] A camera transformed Matrix3D object.
DisplayObject3D
 Inheritedvisible : Boolean
Whether or not the display object is visible.
DisplayObject3D
 Inheritedworld : Matrix3D
World transformation.
DisplayObject3D
 Inheritedx : Number
An Number that sets the X coordinate of a object relative to the origin of its parent.
DisplayObject3D
 Inheritedy : Number
An Number that sets the Y coordinate of a object relative to the origin of its parent.
DisplayObject3D
 Inheritedz : Number
An Number that sets the Z coordinate of a object relative to the origin of its parent.
DisplayObject3D
 InheritedZERO : DisplayObject3D
[static] Returns an empty DiplayObject3D object positioned in the center of the 3D coordinate system (0, 0 ,0).
DisplayObject3D
Protected Properties
 PropertyDefined by
  _autoPlay : Boolean
MD2
  _channelByName : Object
MD2
  _channels : Array
MD2
 Inherited_children : Dictionary
[internal-use] Names indexed by children.
DisplayObjectContainer3D
 Inherited_childrenByName : Object
[internal-use] Children indexed by name.
DisplayObjectContainer3D
  _currentChannel : AbstractChannel3D
MD2
  _currentTime : Number = 0
MD2
  file : String
Variables used in the loading of the file
MD2
  _fps : int
MD2
  framesize : int
MD2
  ident : int
MD2 Header data These are all the variables found in the md2_header_t C style struct that starts every MD2 file.
MD2
  _isPlaying : Boolean = false
MD2
  loader : URLLoader
MD2
  loadScale : Number
MD2
  num_skins : int
MD2
  num_tris : int
MD2
  offset_frames : int
MD2
  offset_skins : int
MD2
 Inherited_scene : SceneObject3D = null
The scene where the object belongs.
DisplayObject3D
  skinwidth : int
MD2
 Inherited_sorted : Array
DisplayObject3D
 Inherited_transformDirty : Boolean = false
[internal-use]
DisplayObject3D
 Inherited_useOwnContainer : Boolean = false
DisplayObject3D
 Inherited_userData : UserData
DisplayObject3D
Public Methods
 MethodDefined by
  
MD2(autoPlay:Boolean = true)
Constructor.
MD2
 Inherited
addChild(child:DisplayObject3D, name:String = null):DisplayObject3D
Adds a child DisplayObject3D instance to this DisplayObjectContainer instance.
DisplayObject3D
 Inherited
Adds all the children of a DisplayObject3D instance to this DisplayObjectContainer instance.
DisplayObjectContainer3D
 Inherited
DisplayObject3D
 Inherited
addGeometry(geometry:GeometryObject3D = null):void
Adds a geometry definition to the instance.
DisplayObject3D
 Inherited
boundingBox():Object
Calculates 3D bounding box.
Vertices3D
 Inherited
DisplayObject3D
 Inherited
childrenList():String
Returns a string value with the list of objects.
DisplayObjectContainer3D
 Inherited
Clones this object.
TriangleMesh3D
 Inherited
copyPosition(reference:*):void
Copies the position information (x, y and z coordinates) from another object or Matrix3D.
DisplayObject3D
 Inherited
copyTransform(reference:*):void
Copies the transformation information (position, rotation and scale) from another object or Matrix3D.
DisplayObject3D
 Inherited
TriangleMesh3D
 Inherited
createViewportLayer(viewport:Viewport3D, recurse:Boolean = true):ViewportLayer
DisplayObject3D
 Inherited
Gets the distance to the position of the given object.
DisplayObject3D
  
Gets a animation channel by its name.
MD2
  
Gets all animation channels for a target.
MD2
  
getAnimationChannelsByClip(name:String):Array
Gets animation channels by clip name.
MD2
 Inherited
getChildByName(name:String, recursive:Boolean = false):DisplayObject3D
Returns the child display object that exists with the specified name.
DisplayObjectContainer3D
 Inherited
Returns the material that exists with the specified name in the materials list.
DisplayObject3D
 Inherited
hitTestObject(obj:DisplayObject3D, multiplier:Number = 1):Boolean
Evaluates the display object to see if it overlaps or intersects with the obj display object.
DisplayObject3D
 Inherited
hitTestPoint(x:Number, y:Number, z:Number):Boolean
Evaluates the display object to see if it overlaps or intersects with the point specified by the x, y and z parameters.
DisplayObject3D
  
load(asset:*, material:MaterialObject3D = null, fps:int = 6, scale:Number = 1):void
Loads the MD2.
MD2
 Inherited
lookAt(targetObject:DisplayObject3D, upAxis:Number3D = null):void
Make the object look at a specific position.
DisplayObject3D
 Inherited
materialsList():String
Returns a string value with the list of material names of the materials list.
DisplayObject3D
 Inherited
Merges duplicated vertices.
TriangleMesh3D
 Inherited
moveBackward(distance:Number):void
Translate the display object in the opposite direction it is facing, i.e.
DisplayObject3D
 Inherited
moveDown(distance:Number):void
Translate the display object downwards, with respect to the direction it is facing, i.e.
DisplayObject3D
 Inherited
moveForward(distance:Number):void
Translate the display object in the direction it is facing, i.e.
DisplayObject3D
 Inherited
moveLeft(distance:Number):void
Translate the display object lateraly, to the left of the direction it is facing, i.e.
DisplayObject3D
 Inherited
moveRight(distance:Number):void
Translate the display object lateraly, to the right of the direction it is facing, i.e.
DisplayObject3D
 Inherited
moveUp(distance:Number):void
Translate the display object upwards, with respect to the direction it is facing, i.e.
DisplayObject3D
 Inherited
pitch(angle:Number):void
Rotate the display object around its lateral or transverse axis —an axis running from the pilot's left to right in piloted aircraft, and parallel to the wings of a winged aircraft; thus the nose pitches up and the tail down, or vice-versa.
DisplayObject3D
  
play(clip:String = null):void
Plays the animation.
MD2
  
project(parent:DisplayObject3D, renderSessionData:RenderSessionData):Number
Project.
MD2
 Inherited
projectEmpty(parent:DisplayObject3D, renderSessionData:RenderSessionData):Number
Vertices3D
 Inherited
projectFrustum(parent:DisplayObject3D, renderSessionData:RenderSessionData):Number
Vertices3D
 Inherited
projectTexture(u:String = "x", v:String = "y"):void
Planar projection from the specified plane.
TriangleMesh3D
 Inherited
quarterFaces():void
Divides all faces into 4.
TriangleMesh3D
 Inherited
Removes the specified child DisplayObject3D instance from the child list of the DisplayObjectContainer3D instance.
DisplayObjectContainer3D
 Inherited
Removes the child DisplayObject3D instance that exists with the specified name, from the child list of the DisplayObjectContainer3D instance.
DisplayObjectContainer3D
 Inherited
replaceMaterialByName(material:MaterialObject3D, name:String):void
Replaces a material by its name.
DisplayObject3D
 Inherited
roll(angle:Number):void
Rotate the display object around the longitudinal axis —an axis drawn through the body of the vehicle from tail to nose in the normal direction of flight, or the direction the object is facing.
DisplayObject3D
 Inherited
setChildMaterial(child:DisplayObject3D, material:MaterialObject3D, existingMaterial:MaterialObject3D = null):void
Sets the material for a child DisplayObject3D.
DisplayObject3D
 Inherited
setChildMaterialByName(childName:String, material:MaterialObject3D):void
Sets the material for a child DisplayObject3D by the child's name.
DisplayObject3D
  
stop():void
Stops the animation.
MD2
 Inherited
toString():String
Returns a string value representing the three-dimensional position values of the display object instance.
DisplayObject3D
 Inherited
transformVertices(transformation:Matrix3D):void
Vertices3D
 Inherited
translate(distance:Number, axis:Number3D):void
Move the object along a given direction.
DisplayObject3D
 Inherited
[internal-use] Updates the transform Matrix3D with the current rotation and scale values.
DisplayObject3D
 Inherited
yaw(angle:Number):void
Rotate the display object around about the vertical axis —an axis drawn from top to bottom.
DisplayObject3D
Protected Methods
 MethodDefined by
  
loadCompleteHandler(event:Event):void
MD2
  
loadProgressHandler(event:ProgressEvent):void
MD2
  
parse(data:ByteArray):void

Parses the MD2 file.

MD2
  
readFrames(data:ByteArray):void
Reads in all the frames
MD2
  
readMd2Header(data:ByteArray):void
Reads in all that MD2 Header data that is declared as private variables.
MD2
 Inherited
setParentContainer(parent:DisplayObject3D, assign:Boolean = true):void
DisplayObject3D
 Inherited
setScreenZ(meshSort:uint, vertex0:Vertex3DInstance, vertex1:Vertex3DInstance, vertex2:Vertex3DInstance):Number
TriangleMesh3D
Public Constants
 ConstantDefined by
 InheritedMESH_SORT_CENTER : uint = 1
[static] tells Mesh3D's render() method to sort by measuring from the center of a triangle
DisplayObject3D
 InheritedMESH_SORT_CLOSE : uint = 3
[static] tells Mesh3D's render() method to sort by measuring from the closest point of a triangle
DisplayObject3D
 InheritedMESH_SORT_FAR : uint = 2
[static] tells Mesh3D's render() method to sort by measuring from the farthest point of a triangle
DisplayObject3D
Property detail
_autoPlayproperty
protected var _autoPlay:Boolean
_channelByNameproperty 
protected var _channelByName:Object
_channelsproperty 
protected var _channels:Array
_currentChannelproperty 
protected var _currentChannel:AbstractChannel3D
_currentTimeproperty 
protected var _currentTime:Number = 0
fileproperty 
protected var file:String

Variables used in the loading of the file

_fpsproperty 
protected var _fps:int
fpsproperty 
fps:uint  [read-only]

Gets the default FPS.

Implementation
    public function get fps():uint
framesizeproperty 
protected var framesize:int
identproperty 
protected var ident:int

MD2 Header data These are all the variables found in the md2_header_t C style struct that starts every MD2 file.

_isPlayingproperty 
protected var _isPlaying:Boolean = false
loaderproperty 
protected var loader:URLLoader
loadScaleproperty 
protected var loadScale:Number
num_skinsproperty 
protected var num_skins:int
num_trisproperty 
protected var num_tris:int
offset_framesproperty 
protected var offset_frames:int
offset_skinsproperty 
protected var offset_skins:int
skinwidthproperty 
protected var skinwidth:int
Constructor detail
MD2()constructor
public function MD2(autoPlay:Boolean = true)

Constructor.

Parameters
autoPlay:Boolean (default = true) — Whether to start the animation automatically.
Method detail
getAnimationChannelByName()method
public function getAnimationChannelByName(name:String):AbstractChannel3D

Gets a animation channel by its name.

Parameters
name:String

Returns
AbstractChannel3D — the found channel.
getAnimationChannels()method 
public function getAnimationChannels(target:DisplayObject3D = null):Array

Gets all animation channels for a target. NOTE: when target is null, 'this' object is used.

Parameters
target:DisplayObject3D (default = null) — The target to get the channels for.

Returns
Array — Array of AnimationChannel3D.
getAnimationChannelsByClip()method 
public function getAnimationChannelsByClip(name:String):Array

Gets animation channels by clip name.

Parameters
name:String — The clip name

Returns
Array — Array of AnimationChannel3D.
load()method 
public function load(asset:*, material:MaterialObject3D = null, fps:int = 6, scale:Number = 1):void

Loads the MD2.

Parameters
asset:* — URL or ByteArray
 
material:MaterialObject3D (default = null) — The material for the MD2
 
fps:int (default = 6) — Frames per second
 
scale:Number (default = 1) — Scale
loadCompleteHandler()method 
protected function loadCompleteHandler(event:Event):void

Parameters
event:Event
loadProgressHandler()method 
protected function loadProgressHandler(event:ProgressEvent):void

Parameters
event:ProgressEvent
parse()method 
protected function parse(data:ByteArray):void

Parses the MD2 file. This is actually pretty straight forward. Only complicated parts (bit convoluded) are the frame loading and "metaface" loading. Hey, it works, use it =)

Parameters
data:ByteArray — A ByteArray
play()method 
public function play(clip:String = null):void

Plays the animation.

Parameters
clip:String (default = null) — clip Optional clip name.
project()method 
public override function project(parent:DisplayObject3D, renderSessionData:RenderSessionData):Number

Project.

Parameters
parent:DisplayObject3D
 
renderSessionData:RenderSessionData

Returns
Number — Number
readFrames()method 
protected function readFrames(data:ByteArray):void

Reads in all the frames

Parameters
data:ByteArray
readMd2Header()method 
protected function readMd2Header(data:ByteArray):void

Reads in all that MD2 Header data that is declared as private variables. I know its a lot, and it looks ugly, but only way to do it in Flash

Parameters
data:ByteArray
stop()method 
public function stop():void

Stops the animation.