OmegaEngine API
1.0.3
|
A model (stored as a Direct3DX Mesh with one or more subsets). Handle More...
Public Member Functions | |
void | SetTexture (ITextureProvider texture) |
Sets the first diffuse texture of the first material. More... | |
Model (XMesh mesh) | |
Creates a new model based upon a XMesh, using its internal material data if available. More... | |
Model (XMesh mesh, params XMaterial[] materials) | |
Creates a new model based upon a XMesh, using an external texture and a plain white material. More... | |
Model (Mesh mesh, params XMaterial[] materials) | |
Creates a new model based upon a custom mesh. More... | |
override bool | Intersects (Ray ray, out float distance) |
Determine whether this PositionableRenderable is intersected by a ray. | |
Public Member Functions inherited from OmegaEngine.Graphics.Renderables.PositionableRenderable | |
void | SetScale (float factor) |
Scales this PositionableRenderable symmetrically More... | |
bool | IsVisible (Camera camera) |
Checks whether this object is visible at the moment (includes Frustum Culling and other filtering criteria). More... | |
bool | Intersects (Ray ray, out DoubleVector3 position) |
Determine whether this PositionableRenderable is intersected by a ray. More... | |
Public Member Functions inherited from OmegaEngine.Graphics.Renderables.Renderable | |
override string | ToString () |
Public Member Functions inherited from OmegaEngine.EngineElement | |
void | Dispose () |
Static Public Member Functions | |
static Model | Quad (Engine engine, ITextureProvider texture=null, float width=5, float height=5) |
Creates a model of a textured 2D quad. More... | |
static Model | Box (Engine engine, ITextureProvider texture=null, float width=5, float height=5, float depth=5) |
Creates a model of a textured box. More... | |
static Model | Sphere (Engine engine, ITextureProvider texture=null, float radius=10, int slices=20, int stacks=20) |
Creates a model of a textured sphere with spherical mapping. More... | |
static Model | Cylinder (Engine engine, ITextureProvider texture, float radiusBottom, float radiusTop, float length, int slices, int stacks) |
Creates a model of a textured sphere with spherical mapping. More... | |
static Model | Cylinder (Engine engine, ITextureProvider texture=null, float radiusBottom=1, float radiusTop=1, float length=10) |
Creates a model of a textured cylinder with spherical mapping. More... | |
static Model | Disc (Engine engine, ITextureProvider texture, float radiusInner, float radiusOuter, float height, int segments) |
Creates a model of a textured round disc with a hole in the middle. More... | |
static Model | Disc (Engine engine, ITextureProvider texture=null, float radiusInner=5, float radiusOuter=7, float height=1) |
Creates a model of a textured round disc with a hole in the middle. More... | |
Public Attributes | |
readonly XMaterial [] | Materials |
An array of materials used to render this mesh More... | |
int | VertexCount => Mesh.VertexCount |
The numbers of vertexes in this model More... | |
Public Attributes inherited from OmegaEngine.Graphics.Renderables.PositionableRenderable | |
ICollection< View > | RequiredViews => _requiredViews |
A list of Views that must be rendered before this PositionableRenderable can be rendered More... | |
Public Attributes inherited from OmegaEngine.EngineElement | |
bool | IsEngineSet => _engine != null |
true if the Engine has been set. More... | |
Protected Member Functions | |
void | RenderSubset (int i, Camera camera, LightSource[] lights) |
override void | OnDispose () |
Hook that is called when the object needs to dispose its internal resources. | |
Protected Member Functions inherited from OmegaEngine.Graphics.Renderables.PositionableRenderable | |
virtual void | RecalcWorldTransform () |
Called to generate/update transformation matrices and related values More... | |
void | RenderHelper (Action render, XMaterial material, Camera camera, params LightSource[] lights) |
Provides an automatic rendering framework that handles things like setting textures, materials, lighting and shaders. More... | |
virtual bool | IntersectsBounding (Ray ray) |
Determine whether PositionableRenderable.WorldBoundingBox and PositionableRenderable.WorldBoundingSphere (if defined) are intersected by a ray. More... | |
override void | OnEngineSet () |
Hook that is calld when Engine is set for the first time. | |
Protected Member Functions inherited from OmegaEngine.Graphics.Renderables.Renderable | |
virtual void | OnPreRender () |
void | PrepareRender () |
Should be called before rendering anything - usually called by base constructor More... | |
Protected Member Functions inherited from OmegaEngine.EngineElement | |
void | RegisterChild (EngineElement element, bool autoDispose=true) |
Registers a child EngineElement for automatic Engine setting and Dispose calling. More... | |
void | UnregisterChild (EngineElement element) |
Unregisters a child EngineElement (opposite of RegisterChild). More... | |
Protected Attributes | |
readonly Mesh | Mesh |
The mesh object to use for rendering; never null . More... | |
Protected Attributes inherited from OmegaEngine.Graphics.Renderables.PositionableRenderable | |
bool | WorldTransformDirty = true |
Does the world transform need to be recalculated? More... | |
Properties | |
int | NumberSubsets [get, protected set] |
The numbers of subsets in this model More... | |
Properties inherited from OmegaEngine.Graphics.Renderables.PositionableRenderable | |
bool | Pickable = true [get, set] |
Shall this PositionableRenderable be pickable with the mouse? More... | |
ViewType | RenderIn [get, set] |
In what kind of Views shall this body be rendered? More... | |
SurfaceEffect | SurfaceEffect [get, set] |
What kinds of surface effects (e.g. lighting) to apply to this PositionableRenderable More... | |
SurfaceShader | SurfaceShader [get, set] |
The SurfaceShader to apply to the surface of this PositionableRenderable More... | |
BillboardMode | Billboard [get, set] |
How this PositionableRenderable shall be rotated towards the camera More... | |
Matrix | PreTransform [get, set] |
A transformation matrix that is to be applied before the normal world transform occurs - useful for correcting off-center meshes More... | |
Vector3 | Scale [get, set] |
Scaling to be performed before rendering More... | |
Quaternion | Rotation [get, set] |
The body's rotation quaternion More... | |
DoubleVector3 | Position [get, set] |
The body's position in world space More... | |
BoundingSphere? | BoundingSphere [get, protected set] |
A sphere that completely encompasses the body (in entity space, even before apply PreTransform). More... | |
BoundingSphere? | WorldBoundingSphere [get] |
A sphere that completely encompasses the body (in world space, used for culling tests). More... | |
bool | DrawBoundingSphere [get, set] |
Shall the bounding sphere used to cull this object be drawn/visualized? (used for debugging) More... | |
BoundingBox? | BoundingBox [get, protected set] |
A axis-aligned box that completely encompasses the body (in entity space, even before apply PreTransform). More... | |
BoundingBox? | WorldBoundingBox [get] |
An axis-aligned box that completely encompasses the body (in world space, used for culling tests). More... | |
bool | DrawBoundingBox [get, set] |
Shall the bounding box used to cull this object be drawn/visualized? (used for debugging) More... | |
Properties inherited from OmegaEngine.Graphics.Renderables.Renderable | |
int | RenderCount [get] |
How many times has this entity been rendered in this frame? More... | |
string | Name [get, set] |
Text value to make it easier to identify a particular render entity More... | |
bool | Visible = true [get, set] |
Shall the entity be rendered? More... | |
bool | Wireframe [get, set] |
Shall this entity be drawn in wireframe-mode? (used for debugging) More... | |
float | VisibilityDistance [get, set] |
The maximum distance from which the entity is visible - 0 for infinite More... | |
int | Alpha [get, set] |
The level of transparency from 0 (solid) to 255 (invisible), OmegaEngine.EngineState.AlphaChannel, OmegaEngine.EngineState.BinaryAlphaChannel or OmegaEngine.EngineState.AdditivBlending More... | |
Properties inherited from OmegaEngine.EngineElement | |
Engine | Engine [get, set] |
The Engine instance used by this object. Must be set before using the object. May not be changed once it has been set! More... | |
bool | IsDisposed [get] |
Indicates whether this object has been disposed and can therefore no longer be used. More... | |
Properties inherited from OmegaEngine.IPositionableOffset | |
DoubleVector3 | Offset [get, set] |
A value to be subtracted from IPositionable.Position in order gain IPositionableOffset.EffectivePosition More... | |
Vector3 | EffectivePosition [get] |
The sum of IPositionable.Position and IPositionableOffset.EffectivePosition More... | |
Properties inherited from OmegaEngine.IPositionable | |
DoubleVector3 | Position [get, set] |
The object's position More... | |
Additional Inherited Members | |
Events inherited from OmegaEngine.Graphics.Renderables.Renderable | |
Action | PreRender |
Occurs once per frame before rendering the entity. Will not be executed if the entity is excluded by a culling test. More... | |
A model (stored as a Direct3DX Mesh with one or more subsets). Handle
No custom PrimitiveTypes. Use VertexGroup for that.
|
inline |
Creates a new model based upon a XMesh, using its internal material data if available.
mesh | The XMesh providing the mesh data. |
Calling IDisposable.Dispose will not dispose the mesh . This is handled by the CacheManager.
Creates a new model based upon a XMesh, using an external texture and a plain white material.
mesh | The XMesh providing the mesh data. |
materials | The materials to use for rendering the model. |
Calling IDisposable.Dispose will call IReferenceCount.ReleaseReference on mesh and materials .
Creates a new model based upon a custom mesh.
mesh | The mesh to render. Normals should be calculated before-hand if they will be used (e.g. by SurfaceShaders). |
materials | The materials to use for rendering the model. |
Calling IDisposable.Dispose will call IDisposable.Dispose on mesh and IReferenceCount.ReleaseReference on materials .
|
inlinestatic |
Creates a model of a textured box.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
width | The width of the box |
height | The height of the box |
depth | The depth of the box |
|
inlinestatic |
Creates a model of a textured sphere with spherical mapping.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
radiusBottom | The radius of the cylinder at the lower end (negative Z). |
radiusTop | The radius of the cylinder at the upper end (positive Z). |
length | The length of the cylinder. |
slices | The number of vertical slices to divide the cylinder in. |
stacks | The number of horizontal stacks to divide the cylinder in. |
|
inlinestatic |
Creates a model of a textured cylinder with spherical mapping.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
radiusBottom | The radius of the cylinder at the lower end (negative Z). |
radiusTop | The radius of the cylinder at the upper end (positive Z). |
length | The length of the cylinder. |
|
inlinestatic |
Creates a model of a textured round disc with a hole in the middle.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
radiusInner | The radius of the inner circle of the ring. |
radiusOuter | The radius of the outer circle of the ring. |
height | The height of the ring. |
segments | The number of segments the ring shall consist of. |
|
inlinestatic |
Creates a model of a textured round disc with a hole in the middle.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
radiusInner | The radius of the inner circle of the ring. |
radiusOuter | The radius of the outer circle of the ring. |
height | The height of the ring. |
|
inlinestatic |
Creates a model of a textured 2D quad.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
width | The width of the quad. |
height | The height of the quad. |
|
inline |
Sets the first diffuse texture of the first material.
texture | The texture to set; null for no texture. |
|
inlinestatic |
Creates a model of a textured sphere with spherical mapping.
engine | The Engine to use for rendering. |
texture | The texture to place on the model; null for no texture. |
radius | The radius of the sphere. |
slices | The number of vertical slices to divide the sphere into. |
stacks | The number of horizontal stacks to divide the sphere into. |
readonly XMaterial [] OmegaEngine.Graphics.Renderables.Model.Materials |
An array of materials used to render this mesh
|
protected |
The mesh object to use for rendering; never null
.
int OmegaEngine.Graphics.Renderables.Model.VertexCount => Mesh.VertexCount |
The numbers of vertexes in this model
|
getprotected set |
The numbers of subsets in this model