public ColliderShape CreateShape(IServiceRegistry services) { object unmanagedArray; switch (HeightStickArraySource.HeightType) { case HeightfieldTypes.Float: { unmanagedArray = CreateHeights <float>(HeightStickArraySource); break; } case HeightfieldTypes.Short: { unmanagedArray = CreateHeights <short>(HeightStickArraySource); break; } case HeightfieldTypes.Byte: { unmanagedArray = CreateHeights <byte>(HeightStickArraySource); break; } default: return(null); } if (unmanagedArray == null) { return(null); } var shape = new HeightfieldColliderShape ( HeightStickArraySource.HeightStickSize.X, HeightStickArraySource.HeightStickSize.Y, HeightStickArraySource.HeightType, unmanagedArray, HeightStickArraySource.HeightScale, HeightStickArraySource.HeightRange.X, HeightStickArraySource.HeightRange.Y, FlipQuadEdges ) { LocalOffset = LocalOffset + new Vector3(0, GetCenteringOffset(), 0), LocalRotation = LocalRotation, Description = this }; return(shape); }
private HeightfieldDebugPrimitive(HeightfieldColliderShape heightfieldColliderShape) { heightfield = heightfieldColliderShape; }