Camera

Example: aspose.threed.entities (aspose-3d-foss)

Camera je Entity koji definiše tačku gledišta u 3D sceni. Kontroliše kako se scena projicira na 2D ravninu slike. Kamera je pričvršćena na Node da je pozicionira i orijentiše u sceni.

class Camera(Entity):

Example

A3DObjectSceneObjectEntityCamera


Napomene o implementaciji

U ovoj verziji aspose-3d-foss, Camera klasa je šablon deklaracije. Samo projection_type i name su funkcionalno pohranjene i dostupne. Sva ostala svojstva (near_plane, far_plane, field_of_view, aspect_ratio, itd.) imaju setere koji ne rade ništa; dodeljene vrednosti se ne čuvaju. Prilikom čitanja ovih svojstava vraća se podrazumevana vrednost klase, bez obzira na to šta je dodeljeno.

Pri uvozu podataka kamere iz 3D fajla (glTF, FBX), projection_type se pravilno parsira. Ostali atributi kamere su dostupni ako format čuva ih kao scene-graph metapodatke.


Example

Camera(name: str = None, projection_type: str = "PERSPECTIVE")
NameTypeAccessDescription
namestrRead/WriteGets or sets the name.
parent_nodes``ReadGets the parent nodes.
excludedboolRead/WriteGets or sets the excluded.
parent_node``Read/WriteGets or sets the parent node.
rotation_mode``Read/WriteGets or sets the rotation mode.
near_planefloatRead/WriteGets or sets the near plane.
far_planefloatRead/WriteGets or sets the far plane.
aspectfloatRead/WriteGets or sets the aspect.
ortho_heightfloatRead/WriteGets or sets the ortho height.
up``Read/WriteGets or sets the up.
look_at``Read/WriteGets or sets the look at.
direction``Read/WriteGets or sets the direction.
target``Read/WriteGets or sets the target.
aperture_mode``Read/WriteGets or sets the aperture mode.
field_of_viewfloatRead/WriteGets or sets the field of view.
field_of_view_xfloatRead/WriteGets or sets the field of view x.
field_of_view_yfloatRead/WriteGets or sets the field of view y.
widthfloatRead/WriteGets or sets the width.
heightfloatRead/WriteGets or sets the height.
aspect_ratiofloatRead/WriteGets or sets the aspect ratio.
magnification``Read/WriteGets or sets the magnification.
projection_typestrRead/WriteGets or sets the projection type.
scene``Read/WriteGets or sets the scene.
propertiesPropertyCollectionReadGets the properties.

Example

SignatureDescription
__init__(name: str, projection_type)
move_forward(distance: float)Moves the camera forward by the specified distance
get_bounding_box()Returns the bounding box.
get_entity_renderer_key()Not implemented in the FOSS edition — throws at runtime. Returns the entity renderer key.
remove_property(property)Removes a custom property identified by the given property object
remove_property(property_name: str)
get_property(property: str)Retrieves the value of a custom property by its identifier
set_property(property: str, value)Sets the property value.
find_property(property: str)Searches for a custom property and returns it if found

Primeri upotrebe

Example: U ovom izdanju, samo projection_type se funkcionalno čuva. Dodeljivanja svojstava za near_plane, far_plane, field_of_view, i aspect_ratio se prihvataju bez greške, ali se ne čuvaju.

Perspective Camera

from aspose.threed import Scene
from aspose.threed.entities import Camera
from aspose.threed.entities import ProjectionType

scene = Scene()

# projection_type is stored and saved
cam = Camera("MainCamera", ProjectionType.PERSPECTIVE)

node = scene.root_node.create_child_node("camera", cam)

# Position the camera using node transform (this does persist)
node.transform.set_translation(0.0, 5.0, 20.0)

scene.save("scene-with-camera.glb")

Orthographic Camera

from aspose.threed import Scene, FileFormat
from aspose.threed.entities import Camera, ProjectionType

scene = Scene()

# Only projection_type is retained; other property assignments are no-ops
cam = Camera("OrthoCamera", ProjectionType.ORTHOGRAPHIC)

scene.root_node.create_child_node("ortho_cam", cam)
scene.save("ortho-scene.glb", FileFormat.GLTF)

Čitanje Camera nakon uvoza

from aspose.threed import Scene
from aspose.threed.entities import Camera

scene = Scene()
scene.open("model.glb")

for node in scene.root_node.child_nodes:
    if isinstance(node.entity, Camera):
        cam = node.entity
        # projection_type is reliably populated; other numeric properties
        # return default values (0.0 / 1.0) regardless of file content
        print(f"Camera '{cam.name}': {cam.projection_type}")

Vidi takođe

 Српски