EmitterLinePropPage.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. /*
  2. ** Command & Conquer Renegade(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #if !defined(AFX_EMITTERLINEPROPPAGE_H__BBD9ED4C_E752_439A_81D5_A4FA9A6F6FC8__INCLUDED_)
  19. #define AFX_EMITTERLINEPROPPAGE_H__BBD9ED4C_E752_439A_81D5_A4FA9A6F6FC8__INCLUDED_
  20. #if _MSC_VER > 1000
  21. #pragma once
  22. #endif // _MSC_VER > 1000
  23. // EmitterLinePropPage.h : header file
  24. //
  25. // Forward delcarations
  26. class EmitterInstanceListClass;
  27. /////////////////////////////////////////////////////////////////////////////
  28. // EmitterLinePropPageClass dialog
  29. class EmitterLinePropPageClass : public CPropertyPage
  30. {
  31. DECLARE_DYNCREATE(EmitterLinePropPageClass)
  32. // Construction
  33. public:
  34. EmitterLinePropPageClass();
  35. ~EmitterLinePropPageClass();
  36. // Dialog Data
  37. //{{AFX_DATA(EmitterLinePropPageClass)
  38. enum { IDD = IDD_PROP_PAGE_EMITTER_LINEPROPS };
  39. CComboBox m_MapModeCombo;
  40. CSpinButtonCtrl m_MergeAbortFactorSpin;
  41. CSpinButtonCtrl m_VPerSecSpin;
  42. CSpinButtonCtrl m_UVTilingSpin;
  43. CSpinButtonCtrl m_UPerSecSpin;
  44. CSpinButtonCtrl m_NoiseAmplitudeSpin;
  45. CSpinButtonCtrl m_SubdivisionLevelSpin;
  46. //}}AFX_DATA
  47. // Overrides
  48. // ClassWizard generate virtual function overrides
  49. //{{AFX_VIRTUAL(EmitterLinePropPageClass)
  50. public:
  51. virtual BOOL OnApply();
  52. protected:
  53. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
  54. virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  55. virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  56. //}}AFX_VIRTUAL
  57. // Implementation
  58. protected:
  59. // Generated message map functions
  60. //{{AFX_MSG(EmitterLinePropPageClass)
  61. virtual BOOL OnInitDialog();
  62. //}}AFX_MSG
  63. DECLARE_MESSAGE_MAP()
  64. public:
  65. /////////////////////////////////////////////////////////
  66. //
  67. // Public methods
  68. //
  69. EmitterInstanceListClass * Get_Emitter (void) const { return m_pEmitterList; }
  70. void Set_Emitter (EmitterInstanceListClass *pemitter_list) { m_pEmitterList = pemitter_list; Initialize (); }
  71. bool Is_Data_Valid (void) const { return m_bValid; }
  72. int Get_Mapping_Mode (void) const { return m_MappingMode; }
  73. bool Get_Merge_Intersections (void) const { return m_MergeIntersections; }
  74. bool Get_End_Caps (void) const { return m_EndCaps; }
  75. bool Get_Disable_Sorting (void) const { return m_DisableSorting; }
  76. int Get_Subdivision_Level (void) const { return m_SubdivisionLevel; }
  77. float Get_Noise_Amplitude (void) const { return m_NoiseAmplitude; }
  78. float Get_Merge_Abort_Factor (void) const { return m_MergeAbortFactor; }
  79. float Get_Texture_Tile_Factor (void) const { return m_TextureTileFactor; }
  80. float Get_U_Per_Sec(void) const { return m_UPerSec; }
  81. float Get_V_Per_Sed(void) const { return m_VPerSec; }
  82. protected:
  83. /////////////////////////////////////////////////////////
  84. //
  85. // Protected methods
  86. //
  87. void Initialize (void);
  88. private:
  89. /////////////////////////////////////////////////////////
  90. //
  91. // Private member data
  92. //
  93. EmitterInstanceListClass * m_pEmitterList;
  94. bool m_bValid;
  95. int m_MappingMode;
  96. bool m_MergeIntersections;
  97. bool m_EndCaps;
  98. bool m_DisableSorting;
  99. int m_SubdivisionLevel;
  100. float m_NoiseAmplitude;
  101. float m_MergeAbortFactor;
  102. float m_TextureTileFactor;
  103. float m_UPerSec;
  104. float m_VPerSec;
  105. };
  106. //{{AFX_INSERT_LOCATION}}
  107. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  108. #endif // !defined(AFX_EMITTERLINEPROPPAGE_H__BBD9ED4C_E752_439A_81D5_A4FA9A6F6FC8__INCLUDED_)