AGX Dynamics 2.42.1.1
Loading...
Searching...
No Matches
RaytraceLambertianOpaqueMaterial.h
Go to the documentation of this file.
1/*
2Copyright 2007-2025. Algoryx Simulation AB.
3
4All AGX source code, intellectual property, documentation, sample code,
5tutorials, scene files and technical white papers, are copyrighted, proprietary
6and confidential material of Algoryx Simulation AB. You may not download, read,
7store, distribute, publish, copy or otherwise disseminate, use or expose this
8material unless having a written signed agreement with Algoryx Simulation AB, or having been
9advised so by Algoryx Simulation AB for a time limited evaluation, or having purchased a
10valid commercial license from Algoryx Simulation AB.
11
12Algoryx Simulation AB disclaims all responsibilities for loss or damage caused
13from using this software, unless otherwise stated in written agreements with
14Algoryx Simulation AB.
15*/
16#pragma once
18
19namespace agxStream
20{
21 class OutputArchive;
22 class InputArchive;
23}
24
25namespace agxSensor
26{
34 {
35 public:
36 static constexpr RtMaterialHandle::Type Type = RtMaterialHandle::Type::OPAQUE_LAMBERTIAN;
37
38 public:
46
51
56
61
65 static RtLambertianOpaqueMaterial get( const agxSDK::LinkedStructure* linkedStructure );
66
71
76
81
82 public:
84
88 float getReflectivity() const;
89
96
97 public:
98 void store( agxStream::OutputArchive& out ) const;
100
101 private:
102 using RtSurfaceMaterial::RtSurfaceMaterial;
103 };
104}
#define AGXSENSOR_EXPORT
The geometry representation used by the collision detection engine.
Definition: Geometry.h:92
Base class for a shape.
Definition: Shape.h:58
Basic implementation of any structure where bodies are linked/constrained together in a well defined ...
Opaque surface material reflecting the light according to the Lambertian model of diffuse reflectance...
void restore(agxStream::InputArchive &in)
static RtLambertianOpaqueMaterial get(const agxCollide::Geometry *geometry)
static RtLambertianOpaqueMaterial create()
Create a new lambertian opaque surface material in the raytrace environment.
static RtLambertianOpaqueMaterial get(const agxWire::Wire *wire)
static RtLambertianOpaqueMaterial get(const agxTerrain::Terrain *terrain)
static RtLambertianOpaqueMaterial get(const agx::RigidBody *rb)
RtLambertianOpaqueMaterial setReflectivity(float reflectivity)
Assign new surface reflectivity of this material.
static RtLambertianOpaqueMaterial get(const agxSDK::LinkedStructure *linkedStructure)
void store(agxStream::OutputArchive &out) const
static RtLambertianOpaqueMaterial get(const agxCollide::Shape *shape)
RtLambertianOpaqueMaterial(RtMaterialInstance instance)
static RtLambertianOpaqueMaterial get(const agxTerrain::TerrainPager *terrainPager)
Surface material of shape instances in the raytrace environment.
Class for reading a binary stream of serialized data.
Definition: InputArchive.h:51
Class for writing serialized data in binary format to a stream.
Definition: OutputArchive.h:57
A pager that will dynamically handle terrain tiles in a agxSDK::Simulation.
Definition: TerrainPager.h:100
A terrain model based a 3D grid model with overlapping height field that can be deformed by interacti...
Definition: Terrain.h:92
Interface and placeholder of controllers/helpers for wires.
Definition: Wire.h:62
The rigid body class, combining a geometric model and a frame of reference.
Definition: RigidBody.h:49
The agxSensor namespace contains components to model real-time sensors connected to the physics of AG...
This namespace contain classes for streaming classes into archives, ASCII, binary for storage (serial...
Material instance in the raytrace environment, containing handle and type.