Adding this call to the buildPrimitive function fixed my issue: super.buildPrimitive();
On Apr 16, 4:22 pm, Leo <[email protected]> wrote: > base class: > ////////////////////////// > ///////////////////////// > package { > import flash.display.Sprite; > import away3d.containers.View3D; > import away3d.cameras.HoverCamera3D; > import flash.events.Event; > > public class Chapter07SampleBase extends Sprite { > protected var _view:View3D; > protected var _camera:HoverCamera3D; > > public function Chapter07SampleBase() { > _createView(); > _createScene(); > } > > protected function _createView():void > { > _camera = new HoverCamera3D(); > _camera.distance = 1000; > _camera.tiltAngle = 10; > _camera.panAngle = 180; > _view = new View3D(); > _view.x = 400; > _view.y = 300; > _view.camera = _camera; > > addChild(_view); > addEventListener(Event.ENTER_FRAME, _onEnterFrame); > } > > protected function _createScene():void > { > var pyramid:Pyramid = new Pyramid(); > pyramid.width = 200; > pyramid.height = 200; > _view.scene.addChild(pyramid); > } > > protected function _onEnterFrame(ev:Event):void > { > _camera.panAngle -= (stage.mouseX - > stage.stageWidth/2)/100; > _camera.hover(); > _view.render(); > } > > }} > > //////////////////////////// > // Custom Primitive Class > /////////////////////////// > package > { > import away3d.arcane; > import away3d.primitives.AbstractPrimitive; > import away3d.core.base.Vertex; > > use namespace arcane; > > public class Pyramid extends AbstractPrimitive > { > private var _height:Number; > private var _width:Number; > private var _depth:Number; > > public function Pyramid(init:Object = null) > { > super(init); > buildPrimitive(); > _height = ini.getNumber('height', 180, {min: 1}); > _width = ini.getNumber('width', 180, {min: 1}); > _depth = ini.getNumber('depth', 180, {min: 1}); > } > ///////////////////////////////// > // getters and setters > ///////////////////////////////// > public function get width():Number > { > return this._width; > } > > public function set width(val:Number):void > { > if (this._width == val) return; > this._width = val; > _primitiveDirty = true; > } > ///////////////////////////////// > public function get height():Number > { > return this._height; > } > > public function set height(val:Number):void > { > if (this._height == val) return; > this._height = val; > _primitiveDirty = true; > } > ///////////////////////////////// > public function get depth():Number > { > return this._depth; > } > > public function set depth(val:Number):void > { > if (this._depth == val) return; > this._depth = val; > _primitiveDirty = true; > } > ///////////////////////////// > // end getter and setters > //////////////////////////// > protected override function buildPrimitive():void > { > var a:Vertex = createVertex(0, _height/2, 0); > var b:Vertex = createVertex(-_width/2, -_height/2, > _depth/2); > var c:Vertex = createVertex(_width/2, -_height/2, > _depth/2); > var d:Vertex = createVertex(_width/2, -_height/2, > -_depth/2); > var e:Vertex = createVertex(-_width/2, -_height/2, > _depth/2); > addFace(createFace(a, c, b)); > addFace(createFace(a, d, c)); > addFace(createFace(a, e, d)); > addFace(createFace(a, b, e)); > addFace(createFace(b, d, e)); > addFace(createFace(b, c, d)); > } > > } > > }
