11 #ifndef __BRAY_Interface__
12 #define __BRAY_Interface__
41 class BRAY_ShaderGraph;
42 class BRAY_ShaderInstance;
43 class BRAY_VexMaterial;
75 bool isValid()
const {
return mySpace.get() !=
nullptr; }
86 int motionSegments()
const;
119 bool canErase(
int token)
const;
126 bool isValid()
const {
return myOptions.get() !=
nullptr; }
134 exint numProperties()
const;
150 template <
typename T>
151 const T *
import(
int token,
T *
val,
size_t n)
const;
160 template <
typename T>
161 bool set(
int token,
const T *
value,
exint tuple_size);
164 template <
typename T>
167 return set(token, &value, 1);
171 template <
typename T>
172 bool isEqual(
int token,
const T *
value,
exint tuple_size)
const;
175 template <
typename T>
178 return isEqual(token, &value, 1);
182 bool isVariadic(
int token)
const;
198 const bool *bval(
int token)
const;
199 const int64 *ival(
int token)
const;
200 const fpreal64 *fval(
int token)
const;
227 bool isKarmaCPU()
const;
228 bool isKarmaXPU()
const;
231 bool isValid()
const {
return myScene.get() !=
nullptr; }
234 bool threadSafe()
const;
237 bool nestedInstancing()
const;
262 void saveCheckpointASAP();
287 const BRAY_Scene *
scenePtr()
const {
return myScene.get(); }
292 void commitOptions();
297 const OptionSet constSceneOptions()
const;
303 const OptionSet constObjectProperties()
const;
309 const OptionSet constLightProperties()
const;
314 const OptionSet constCameraProperties()
const;
319 const OptionSet constPlaneProperties()
const;
329 template <
typename T>
331 T *
val,
size_t n)
const
333 return constSceneOptions().import(token, val, n);
337 template <
typename T>
342 return sceneOptions().set(token, value, tuple_size);
346 template <
typename T>
350 return setOption(token, &value, 1);
357 return constSceneOptions().size(token);
364 return constSceneOptions().storage(token);
371 return constSceneOptions().isVariadic(token);
374 {
return *constSceneOptions().bval(t); }
376 {
return *constSceneOptions().ival(t); }
378 {
return *constSceneOptions().fval(t); }
380 {
return *constSceneOptions().sval(t); }
386 template <
typename T>
388 T *
val,
size_t n)
const
390 return constObjectProperties().import(token, val, n);
394 template <
typename T>
399 return objectProperties().set(token, value, tuple_size);
416 {
return lockProperties(
"*", state); }
419 template <
typename T>
423 return setProperty(token, &value, 1);
430 return constObjectProperties().size(token);
437 return constObjectProperties().storage(token);
444 return constObjectProperties().isVariadic(token);
447 {
return *constObjectProperties().bval(t); }
449 {
return *constObjectProperties().ival(t); }
451 {
return *constObjectProperties().fval(t); }
453 {
return *constObjectProperties().sval(t); }
487 bool loadHDA(
const char *
path);
508 : myGeometry(primvar)
509 , myParmName(shader_parm)
512 , myIsArray(is_array)
535 bool isValid()
const {
return myMat !=
nullptr; }
544 void updateSurface(
const ScenePtr &scene,
548 bool updateDisplace(
ScenePtr &scene,
553 void updateSurfaceCode(
const ScenePtr &scene,
560 bool updateDisplaceCode(
const ScenePtr &scene,
566 void updateSurfaceGraph(
const ScenePtr &scene,
571 bool updateDisplaceGraph(
ScenePtr &scene,
576 void setInputs(
const ScenePtr &scene,
583 void setCoordSysAliases(
const ScenePtr &scene,
587 BRAY_VexMaterial *myMat;
594 : myFaceList(facelist)
595 , myMaterial(material)
638 bool isValid()
const {
return myObject !=
nullptr; }
646 const BRAY_Object *
objectPtr()
const {
return myObject.get(); }
659 void setInstancePrototype(
const ObjectPtr &proto);
662 void setInstanceTransforms(
ScenePtr &scene,
666 void setInstanceAttributes(
const ScenePtr &scene,
673 void setInstanceProperties(
const ScenePtr &scene,
684 bool validateInstance()
const;
702 bool setGeometry(
const ScenePtr &scene,
707 bool setGeometry(
const ScenePtr &scene,
715 const FieldList& fields);
721 void takeOwnership(BRAY_Object *
obj);
737 bool isValid()
const {
return myLight !=
nullptr; }
742 const BRAY_Light *
lightPtr()
const {
return myLight.get(); }
750 void setTransform(
const SpacePtr &xforms);
762 void commitOptions(
ScenePtr &scene);
765 void updateShaderGraph(
const ScenePtr &scene,
772 void updateFilters(
const ScenePtr &scene,
776 void eraseFilter(
const ScenePtr &scene,
793 bool isValid()
const {
return myCamera !=
nullptr; }
798 const BRAY_Camera *
cameraPtr()
const {
return myCamera.get(); }
814 void resizeCameraProperties(
int nseg);
820 void commitOptions(
ScenePtr &scene);
837 bool isValid()
const {
return mySpace !=
nullptr; }
843 const BRAY_Camera *
spacePtr()
const {
return mySpace.get(); }
859 void resizeCameraProperties(
int nseg);
883 {
return aov.myAOVBuffer == myAOVBuffer; }
885 {
return !(*
this == aov); }
894 float getDefaultValue()
const;
898 bool isMapped()
const;
901 int getNumExtra()
const;
905 void *mapExtra(
int idx);
906 void unmapExtra(
int idx);
911 bool isConverged()
const;
913 void clearConverged();
916 bool isValid()
const;
946 template <
typename T>
950 template <
typename T>
952 {
return setOption(name, &value, 1); }
970 , myFilename(filename)
987 template <
typename T>
991 template <
typename T>
993 {
return setOption(name, &value, 1); }
1002 myAOVs.emplace_back(name);
1003 return myAOVs.last();
1009 bool result = doCommit();
1074 myStage = STAGE_INACTIVE;
1078 myOcclusionRays = 0;
1081 myDisplaceShadeCount = 0;
1082 mySurfaceShadeCount = 0;
1083 myOpacityShadeCount = 0;
1084 myLightShadeCount = 0;
1085 myEmissionShadeCount = 0;
1086 myVolumeShadeCount = 0;
1094 myLightTreeCount = 0;
1096 myCoordSysCount = 0;
1097 myOctreeBuildTime = 0;
1098 myLoadWallClock = 0;
1103 myTotalWallClock = 0;
1106 myCurrentMemory = 0;
1108 myObjectCountsSet =
false;
1109 myFilterErrors.clear();
1111 myDetailedTimes.clear();
1112 myRenderProgressAnnotation.clear();
1113 myRenderStatsAnnotation.clear();
1114 myRenderSettings.clear();
1207 void clearOutputPlanes();
1209 int getAOVCount()
const;
1213 const Stats &renderStats()
const;
1219 bool prepareRender();
1222 void render(
bool (*stopreq)(
void *) =
nullptr,
void *
data =
nullptr);
1225 bool isRendering()
const;
1228 bool isError()
const;
1231 bool isPaused()
const;
1234 void prepareForStop();
1240 bool resumeRender();
1243 void setPriority(
int x,
int y);
1249 void clearPriority();
1272 OptionSet nodeParams(BRAY_ShaderInstance *node);
1296 bool isInt()
const {
return myType == 1; }
1304 return myB.size() + myI.size() + myF.size() + myS.size();
int64 myCameraRays
Ray counts.
void cancel()
Cancel this output file for some reason.
BRAY_EventType
Types of events that can be sent as updates to the renderer.
UT_Vector2T< int64 > UT_Vector2I
AOV & appendAOV(const UT_StringHolder &name)
Add an AOV to this output file.
UT_Matrix4T< fpreal64 > UT_Matrix4D
UT_StringHolder optionS(BRAY_SceneOption t) const
int64 propertyI(BRAY_SceneOption t) const
GT_API const UT_StringHolder filename
fpreal myOctreeBuildTime
Times.
const BRAY_Camera * spacePtr() const
GLintptr GLsizeiptr GLboolean commit
Interface to scene materials.
const VPRM_SpacePtr & space() const
bool operator==(const AOVBufferPtr &aov) const
SYS_FORCE_INLINE const T * propertyImport(BRAY_ObjectProperty token, T *val, size_t n) const
const BRAY_Scene * scenePtr() const
bool commit()
Commit and add this output file to the render.
const BRAY_Camera * cameraPtr() const
void setName(const UT_StringHolder &n)
void addOutput(const Parameter &parm)
bool isValid() const
Test validity.
float BRAYtime
Consistent representation of time type within BRAY.
UT_Vector2I myPolyCount
Object counts – only defined if verbose >= 2.
BRAY_RayVisibility
Ray visibility flags.
bool operator!=(const AOVBufferPtr &aov) const
SYS_FORCE_INLINE bool setProperty(BRAY_ObjectProperty token, const T &value)
Simple interface to set a scalar property.
GLsizei const GLchar *const * path
AOV(const UT_StringHolder &name)
UT_SharedPtr< BRAY_Light > myLight
FacesetMaterial(const GT_DataArrayHandle &facelist=GT_DataArrayHandle(), const MaterialPtr &material=MaterialPtr())
const UT_Options & options() const
CoordSysPtr(const UT_SharedPtr< BRAY_Camera > &sp=UT_SharedPtr< BRAY_Camera >())
const UT_Array< AOV > & aovs() const
const UT_StringHolder & name() const
SYS_FORCE_INLINE const T * optionImport(BRAY_SceneOption token, T *val, size_t n) const
const UT_StringHolder & filename() const
Access member data.
bool setOption(const UT_StringHolder &name, const T &value)
Class which writes ASCII or binary JSON streams.
int64 optionI(BRAY_SceneOption t) const
GLuint const GLchar * name
SYS_FORCE_INLINE bool set(int token, const T &value)
Simple interface to set a scalar property.
const BRAY_Object * objectPtr() const
UT_StringHolder myPrimvar
SYS_FORCE_INLINE exint propertySize(BRAY_ObjectProperty token) const
const UT_Array< Parameter > & inputs() const
const BRAY_Light * lightPtr() const
OutputFile(BRAY::ScenePtr &scene, const UT_StringHolder &filename, const UT_StringHolder &type)
bool isValid() const
Test validity.
UT_Matrix4D myWorldToCamera
Transform matrices.
CameraPtr(const UT_SharedPtr< BRAY_Camera > &cp=UT_SharedPtr< BRAY_Camera >())
IFDmantra you can see code vm_image_mplay_direction endcode When SOHO starts a render
const BRAY_VexMaterial * materialPtr() const
SYS_FORCE_INLINE bool isEqual(int token, const T &value) const
Simple interface for equality of a scalar value.
UT_StringHolder propertyS(BRAY_SceneOption t) const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
bool isValid() const
Test validity.
GLubyte GLubyte GLubyte GLubyte w
bool propertyB(BRAY_SceneOption t) const
VPRM_OptionSetPtr & options()
const UT_StringHolder name() const
SYS_FORCE_INLINE GT_Storage propertyStorage(BRAY_ObjectProperty token) const
Return the storage class of an option.
UT_SharedPtr< BRAY_Camera > myCamera
UT_SharedPtr< BRAY_Object > myObject
UT_Array< UT_StringHolder > myS
BRAY_Camera * cameraPtr()
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
UT_IntrusivePtr< GT_DataArray > GT_DataArrayHandle
SYS_FORCE_INLINE exint optionSize(BRAY_SceneOption token) const
UT_Matrix4D myWorldToRaster
ShaderGraphPtr(UT_SharedPtr< BRAY_ShaderGraph > graph)
int64 myOpacityShadeCount
UT_StringHolder myVariable
fpreal myTTFP
Render times.
NodeDecl(const UT_StringHolder &n)
SYS_FORCE_INLINE bool optionIsVariadic(BRAY_SceneOption token) const
Return whether an option has variadic arguments.
SYS_FORCE_INLINE bool setOption(BRAY_SceneOption token, const T *value, exint tuple_size)
Interface to set an option. This template class is specialized for:
int64 mySurfaceShadeCount
SYS_FORCE_INLINE exint lockAllObjectProperties(bool state)
Lock or unlock all object properties.
int myFrameCount
Total number of frames rendered.
const UT_Array< Parameter > & outputs() const
fpreal myLoadWallClock
Initialization times.
bool isValid() const
Test validity.
Class used to define image planes.
int64 myEmissionShadeCount
const UT_Options & options() const
UT_StringHolder myRenderStatsAnnotation
GT_DataArrayHandle myFaceList
UT_Vector2I myVolumeCount
SYS_FORCE_INLINE bool setOption(BRAY_SceneOption token, const T &value)
Simple interface to set a scalar option.
PXL_DataFormat myDataFormat
fpreal myPercentDone
Percent complete of current frame.
A map of string to various well defined value types.
A render product represents an output file.
UT_StringHolder myDetailedTimes
Detailed times if verbose >= 4.
fpreal64 optionF(BRAY_SceneOption t) const
MaterialPtr(BRAY_VexMaterial *mat=nullptr)
SYS_FORCE_INLINE bool setProperty(BRAY_ObjectProperty token, const T *value, exint tuple_size)
Interface to set an property. This template class is specialized for:
AOVBufferPtr(const UT_SharedPtr< BRAY_AOVBuffer > &aov)
UT_Vector2I myProceduralCount
SYS_FORCE_INLINE bool propertyIsVariadic(BRAY_ObjectProperty token) const
Return whether an property has variadic arguments.
bool isValid() const
Test validity.
**If you just want to fire and args
void addInput(const Parameter &parm)
getOption("OpenEXR.storage") storage
UT_Matrix4D myWorldToScreen
RenderStage myStage
Current state of rendering.
bool setOption(const UT_StringHolder &name, const T &value)
MX_GENSHADER_API const TypeDesc * INTEGER
UT_StringHolder myRenderSettings
bool optionB(BRAY_SceneOption t) const
Interface to the renderer.
UT_Vector2I myPointMeshCount
UT_StringHolder myRenderProgressAnnotation
const UT_StringHolder & type() const
fpreal64 propertyF(BRAY_SceneOption t) const
int64 myDisplaceShadeCount
const VPRM_OptionSetPtr & options() const
BRAY_Object * objectPtr()
UT_StringArray myFilterErrors
LightPtr(const UT_SharedPtr< BRAY_Light > &lp=UT_SharedPtr< BRAY_Light >())
SYS_FORCE_INLINE GT_Storage optionStorage(BRAY_SceneOption token) const
Return the storage class of an option.
FMT_CONSTEXPR auto find(Ptr first, Ptr last, T value, Ptr &out) -> bool